# Jira & Confluence {% hint style="success" %} Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks * Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! * **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}
Se você está interessado em **carreira de hacking** e hackear o inhackeável - **estamos contratando!** (_fluência em polonês escrita e falada é necessária_). {% embed url="https://www.stmcyber.com/careers" %} ## Verificar Privilégios No Jira, **privilégios podem ser verificados** por qualquer usuário, autenticado ou não, através dos endpoints `/rest/api/2/mypermissions` ou `/rest/api/3/mypermissions`. Esses endpoints revelam os privilégios atuais do usuário. Uma preocupação notável surge quando **usuários não autenticados possuem privilégios**, indicando uma **vulnerabilidade de segurança** que pode ser elegível para um **bounty**. Da mesma forma, **privilégios inesperados para usuários autenticados** também destacam uma **vulnerabilidade**. Uma **atualização** importante foi feita em **1º de fevereiro de 2019**, exigindo que o endpoint 'mypermissions' incluísse um **parâmetro 'permission'**. Este requisito visa **aumentar a segurança** especificando os privilégios que estão sendo consultados: [verifique aqui](https://developer.atlassian.com/cloud/jira/platform/change-notice-get-my-permissions-requires-permissions-query-parameter/#change-notice---get-my-permissions-resource-will-require-a-permissions-query-parameter) * 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 Exemplo: `https://your-domain.atlassian.net/rest/api/2/mypermissions?permissions=BROWSE_PROJECTS,CREATE_ISSUES,ADMINISTER_PROJECTS` ```bash #Check non-authenticated privileges curl https://jira.some.example.com/rest/api/2/mypermissions | jq | grep -iB6 '"havePermission": true' ``` ## Enumeração automatizada * [https://github.com/0x48piraj/Jiraffe](https://github.com/0x48piraj/Jiraffe) * [https://github.com/bcoles/jira\_scan](https://github.com/bcoles/jira\_scan) ## Plugins Atlassian Conforme indicado neste [**blog**](https://cyllective.com/blog/posts/atlassian-audit-plugins), na documentação sobre [Módulos de Plugin ↗](https://developer.atlassian.com/server/framework/atlassian-sdk/plugin-modules/) é possível verificar os diferentes tipos de plugins, como: * [Módulo de Plugin REST ↗](https://developer.atlassian.com/server/framework/atlassian-sdk/rest-plugin-module): Expõe endpoints de API RESTful * [Módulo de Plugin Servlet ↗](https://developer.atlassian.com/server/framework/atlassian-sdk/servlet-plugin-module/): Implantar servlets Java como parte de um plugin * [Módulo de Plugin Macro ↗](https://developer.atlassian.com/server/confluence/macro-module/): Implementar Macros do Confluence, ou seja, templates HTML parametrizados Este é um exemplo do tipo de plugin macro: ```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 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; } } ``` É possível observar que esses plugins podem ser vulneráveis a vulnerabilidades web comuns, como XSS. Por exemplo, o exemplo anterior é vulnerável porque está refletindo dados fornecidos pelo usuário. Uma vez que um XSS é encontrado, no [**este repositório do github**](https://github.com/cyllective/XSS-Payloads/tree/main/Confluence) você pode encontrar alguns payloads para aumentar o impacto do XSS. ## Plugin de Backdoor [**Este post**](https://cyllective.com/blog/posts/atlassian-malicious-plugin) descreve diferentes ações (maliciosas) que um plugin malicioso do Jira poderia realizar. Você pode encontrar [**exemplo de código neste repositório**](https://github.com/cyllective/malfluence). Estas são algumas das ações que um plugin malicioso poderia realizar: * **Ocultar Plugins de Administradores**: É possível ocultar o plugin malicioso injetando algum javascript de front-end. * **Exfiltrar Anexos e Páginas**: Permitir acessar e exfiltrar todos os dados. * **Roubar Tokens de Sessão**: Adicionar um endpoint que irá ecoar os cabeçalhos na resposta (com o cookie) e algum javascript que irá contatá-lo e vazar os cookies. * **Execução de Comandos**: Claro que é possível criar um plugin que irá executar código. * **Shell Reversa**: Ou obter uma shell reversa. * **Proxy DOM**: Se o Confluence estiver dentro de uma rede privada, seria possível estabelecer uma conexão através do navegador de algum usuário com acesso a ele e, por exemplo, contatar o servidor executando comandos através dele.
Se você está interessado em **carreira em hacking** e hackear o inhackeável - **estamos contratando!** (_fluente em polonês escrito e falado é necessário_). {% embed url="https://www.stmcyber.com/careers" %} {% hint style="success" %} Aprenda e pratique Hacking AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Aprenda e pratique Hacking GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks * Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)! * **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
{% endhint %}