Jira & Confluence

Support HackTricks

Wenn Sie an einer Hacking-Karriere interessiert sind und das Unhackbare hacken möchten - wir stellen ein! (fließend Polnisch in Wort und Schrift erforderlich).

Überprüfen Sie Berechtigungen

In Jira können Berechtigungen von jedem Benutzer überprüft werden, 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, dass nicht-authentifizierte Benutzer Berechtigungen haben, was auf eine Sicherheitsanfälligkeit hinweist, die möglicherweise für eine Belohnung in Frage kommt. 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: hier überprüfen

  • 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:

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 Sitzungstoken: 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.

Wenn Sie an einer Hacking-Karriere interessiert sind und das Unhackbare hacken möchten - wir stellen ein! (fließend Polnisch in Wort und Schrift erforderlich).

HackTricks unterstützen

Last updated