Jira & Confluence
Reading time: 4 minutes
tip
Impara e pratica l'Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica l'Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos di github.
Controlla i privilegi
In Jira, i privilegi possono essere controllati da qualsiasi utente, autenticato o meno, attraverso gli endpoint /rest/api/2/mypermissions
o /rest/api/3/mypermissions
. Questi endpoint rivelano i privilegi attuali dell'utente. Una preoccupazione notevole sorge quando gli utenti non autenticati detengono privilegi, indicando una vulnerabilità di sicurezza che potrebbe potenzialmente essere idonea per un bounty. Allo stesso modo, privilegi inaspettati per gli utenti autenticati evidenziano anch'essi una vulnerabilità.
Un'importante aggiornamento è stato effettuato il 1° febbraio 2019, richiedendo che l'endpoint 'mypermissions' includesse un parametro 'permission'. Questo requisito mira a migliorare la sicurezza specificando i privilegi che vengono interrogati: controllalo qui
- 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
Esempio: 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'
Enumerazione automatizzata
Plugin Atlassian
Come indicato in questo blog, nella documentazione sui moduli plugin ↗ è possibile controllare i diversi tipi di plugin, come:
- Modulo Plugin REST ↗: Esporre endpoint API RESTful
- Modulo Plugin Servlet ↗: Distribuire servlet Java come parte di un plugin
- Modulo Plugin Macro ↗: Implementare Macro di Confluence, ovvero modelli HTML parametrizzati
Questo è un esempio del tipo di 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; }
}
È possibile osservare che questi plugin potrebbero essere vulnerabili a comuni vulnerabilità web come XSS. Ad esempio, l'esempio precedente è vulnerabile perché riflette i dati forniti dall'utente.
Una volta trovato un XSS, in questo repo github puoi trovare alcuni payload per aumentare l'impatto dell'XSS.
Plugin Backdoor
Questo post descrive diverse azioni (maligne) che potrebbe eseguire un plugin Jira malevolo. Puoi trovare un esempio di codice in questo repo.
Queste sono alcune delle azioni che un plugin malevolo potrebbe eseguire:
- Nascondere i Plugin agli Amministratori: È possibile nascondere il plugin malevolo iniettando del javascript front-end.
- Esfiltrare Allegati e Pagine: Consente di accedere e esfiltrare tutti i dati.
- Furto di Token di Sessione: Aggiungere un endpoint che restituirà gli header nella risposta (con il cookie) e del javascript che lo contatterà e esfiltrerà i cookie.
- Esecuzione di Comandi: Ovviamente è possibile creare un plugin che esegue codice.
- Shell Inversa: O ottenere una shell inversa.
- Proxying DOM: Se il confluence è all'interno di una rete privata, sarebbe possibile stabilire una connessione attraverso il browser di un utente con accesso e, ad esempio, contattare il server eseguendo comandi attraverso di esso.
tip
Impara e pratica l'Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica l'Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos di github.