Jira & Confluence
Reading time: 4 minutes
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Berechtigungen überprüfen
In Jira können Berechtigungen von jedem Benutzer überprüft werden, ob authentifiziert oder nicht, über die Endpunkte /rest/api/2/mypermissions
oder /rest/api/3/mypermissions
. Diese Endpunkte zeigen die aktuellen Berechtigungen des Benutzers an. Ein bemerkenswerter Punkt ist, wenn nicht-authentifizierte Benutzer Berechtigungen haben, was auf eine Sicherheitsanfälligkeit hinweist, die potenziell für eine Belohnung in Frage kommen könnte. Ebenso heben unerwartete Berechtigungen für authentifizierte Benutzer ebenfalls eine Anfälligkeit hervor.
Ein wichtiger Update wurde am 1. Februar 2019 vorgenommen, der den 'mypermissions'-Endpunkt dazu verpflichtet, einen 'permission'-Parameter einzuschließen. Diese Anforderung zielt darauf ab, die Sicherheit zu verbessern, indem die abgefragten Berechtigungen spezifiziert werden: check it here
- ADD_COMMENTS
- ADMINISTER
- ADMINISTER_PROJECTS
- ASSIGNABLE_USER
- ASSIGN_ISSUES
- BROWSE_PROJECTS
- BULK_CHANGE
- CLOSE_ISSUES
- CREATE_ATTACHMENTS
- CREATE_ISSUES
- CREATE_PROJECT
- CREATE_SHARED_OBJECTS
- DELETE_ALL_ATTACHMENTS
- DELETE_ALL_COMMENTS
- DELETE_ALL_WORKLOGS
- DELETE_ISSUES
- DELETE_OWN_ATTACHMENTS
- DELETE_OWN_COMMENTS
- DELETE_OWN_WORKLOGS
- EDIT_ALL_COMMENTS
- EDIT_ALL_WORKLOGS
- EDIT_ISSUES
- EDIT_OWN_COMMENTS
- EDIT_OWN_WORKLOGS
- LINK_ISSUES
- MANAGE_GROUP_FILTER_SUBSCRIPTIONS
- MANAGE_SPRINTS_PERMISSION
- MANAGE_WATCHERS
- MODIFY_REPORTER
- MOVE_ISSUES
- RESOLVE_ISSUES
- SCHEDULE_ISSUES
- SET_ISSUE_SECURITY
- SYSTEM_ADMIN
- TRANSITION_ISSUES
- USER_PICKER
- VIEW_AGGREGATED_DATA
- VIEW_DEV_TOOLS
- VIEW_READONLY_WORKFLOW
- VIEW_VOTERS_AND_WATCHERS
- WORK_ON_ISSUES
Beispiel: https://your-domain.atlassian.net/rest/api/2/mypermissions?permissions=BROWSE_PROJECTS,CREATE_ISSUES,ADMINISTER_PROJECTS
#Check non-authenticated privileges
curl https://jira.some.example.com/rest/api/2/mypermissions | jq | grep -iB6 '"havePermission": true'
Automatisierte Enumeration
Atlasian Plugins
Wie in diesem Blog angegeben, ist es in der Dokumentation über Plugin-Module ↗ möglich, die verschiedenen Arten von Plugins zu überprüfen, wie:
- REST Plugin-Modul ↗: Exponiere RESTful API-Endpunkte
- Servlet Plugin-Modul ↗: Bereitstellung von Java-Servlets als Teil eines Plugins
- Macro Plugin-Modul ↗: Implementierung von Confluence-Makros, d.h. parametrisierten HTML-Vorlagen
Dies ist ein Beispiel für den Makro-Plugin-Typ:
package com.atlassian.tutorial.macro;
import com.atlassian.confluence.content.render.xhtml.ConversionContext;
import com.atlassian.confluence.macro.Macro;
import com.atlassian.confluence.macro.MacroExecutionException;
import java.util.Map;
public class helloworld implements Macro {
public String execute(Map<String, String> map, String body, ConversionContext conversionContext) throws MacroExecutionException {
if (map.get("Name") != null) {
return ("<h1>Hello " + map.get("Name") + "!</h1>");
} else {
return "<h1>Hello World!<h1>";
}
}
public BodyType getBodyType() { return BodyType.NONE; }
public OutputType getOutputType() { return OutputType.BLOCK; }
}
Es ist möglich zu beobachten, dass diese Plugins anfällig für gängige Webanfälligkeiten wie XSS sein könnten. Zum Beispiel ist das vorherige Beispiel anfällig, weil es Daten widerspiegelt, die vom Benutzer bereitgestellt werden.
Sobald ein XSS gefunden wurde, können Sie in diesem GitHub-Repo einige Payloads finden, um die Auswirkungen des XSS zu erhöhen.
Backdoor-Plugin
Dieser Beitrag beschreibt verschiedene (bösartige) Aktionen, die ein bösartiges Jira-Plugin ausführen könnte. Sie finden Codebeispiele in diesem Repo.
Dies sind einige der Aktionen, die ein bösartiges Plugin ausführen könnte:
- Plugins vor Admins verbergen: Es ist möglich, das bösartige Plugin zu verbergen, indem man etwas Front-End-JavaScript injiziert.
- Exfiltrieren von Anhängen und Seiten: Ermöglicht den Zugriff auf und die Exfiltration aller Daten.
- Stehlen von Sitzungstokens: Fügen Sie einen Endpunkt hinzu, der die Header in der Antwort (mit dem Cookie) zurückgibt, und etwas JavaScript, das damit Kontakt aufnimmt und die Cookies leakt.
- Befehlsausführung: Natürlich ist es möglich, ein Plugin zu erstellen, das Code ausführt.
- Reverse Shell: Oder eine Reverse Shell erhalten.
- DOM-Proxying: Wenn sich die Confluence in einem privaten Netzwerk befindet, wäre es möglich, eine Verbindung über den Browser eines Benutzers mit Zugriff darauf herzustellen und beispielsweise den Server über ihn zu kontaktieren, um Befehle auszuführen.
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.