Jira & Confluence
tip
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Verificar Privilegios
En Jira, los privilegios pueden ser verificados 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. Una preocupación notable surge cuando los usuarios no autenticados tienen privilegios, lo que indica una vulnerabilidad de seguridad que podría ser elegible para una recompensa. De manera similar, privilegios inesperados para usuarios autenticados también destacan una vulnerabilidad.
Una actualización importante se realizó el 1 de febrero de 2019, requiriendo que el endpoint 'mypermissions' incluya un parámetro 'permission'. Este requisito tiene como objetivo mejorar la seguridad al especificar los privilegios que se están consultando: ver aquí
- 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
Plugins de Atlassian
Como se indica en este blog, en la documentación sobre Módulos de plugin ↗ es posible verificar los diferentes tipos de plugins, como:
- Módulo de plugin REST ↗: Expone puntos finales de API RESTful
- Módulo de plugin Servlet ↗: Despliega servlets de Java como parte de un plugin
- Módulo de plugin Macro ↗: Implementa macros de Confluence, es decir, plantillas HTML parametrizadas
Este es un ejemplo del tipo de plugin macro:
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 posible observar que estos plugins podrían ser vulnerables a vulnerabilidades web comunes como XSS. Por ejemplo, el ejemplo anterior es vulnerable porque está reflejando datos proporcionados por el usuario.
Una vez que se encuentra un XSS, en este repositorio de github puedes encontrar algunos payloads para aumentar el impacto del XSS.
Plugin de Puerta Trasera
Esta publicación describe diferentes acciones (maliciosas) que podría realizar un plugin malicioso de Jira. Puedes encontrar un ejemplo de código en este repositorio.
Estas son algunas de las acciones que un plugin malicioso podría realizar:
- Ocultar Plugins de los Administradores: Es posible ocultar el plugin malicioso inyectando algún javascript del lado del cliente.
- Exfiltración de Archivos Adjuntos y Páginas: Permitir acceder y exfiltrar todos los datos.
- Robo de Tokens de Sesión: Agregar un endpoint que refleje los encabezados en la respuesta (con la cookie) y algún javascript que lo contacte y filtre las cookies.
- Ejecución de Comandos: Por supuesto, es posible crear un plugin que ejecute código.
- Shell Inversa: O conseguir una shell inversa.
- Proxy de DOM: Si el 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 él y, por ejemplo, contactar al servidor ejecutando comandos a través de él.
tip
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.