hacktricks/network-services-pentesting/pentesting-web/jira.md

8.3 KiB

Jira & Confluence

{% hint style="success" %} Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% 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 de permissão'. Este requisito visa aumentar a segurança especificando os privilégios que estão sendo consultados: verifique aqui

  • 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

#Check non-authenticated privileges
curl https://jira.some.example.com/rest/api/2/mypermissions | jq | grep -iB6 '"havePermission": true'

Enumeração automatizada

Plugins Atlassian

Conforme indicado neste blog, na documentação sobre Módulos de Plugin ↗ é possível verificar os diferentes tipos de plugins, como:

Este é um exemplo do 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; }
}

É possível observar que esses plugins podem ser vulneráveis a vulnerabilidades comuns da web, 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 você pode encontrar alguns payloads para aumentar o impacto do XSS.

Plugin de Backdoor

Este post descreve diferentes ações (maliciosas) que um plugin malicioso do Jira poderia realizar. Você pode encontrar exemplo de código neste repositório.

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 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)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}