d3vn0mi/CVE-2026-27470-POC

GitHub: d3vn0mi/CVE-2026-27470-POC

一个声称针对 CVE-2026-27470 漏洞的概念验证仓库,但该 CVE 编号目前无效。

Stars: 0 | Forks: 0

# CVE-2026-27470 — ZoneMinder 二阶 SQL 注入 PoC **作者:[d3vn0mi](https://github.com/d3vn0mi)** | **CVSS 8.8** | 需要认证 | 需要 Events 权限 ## 概述 CVE-2026-27470 是 ZoneMinder 的 `web/ajax/status.php` 中的一个二阶 SQL 注入漏洞,具体位于 `getNearEvents()` 函数中。 | 详情 | 值 | |--------------------|--------------------------------| | **受影响版本** | ZoneMinder <= 1.36.37 和 1.37.61 – 1.38.0 | | **修复版本** | 1.36.38 / 1.38.1 | | **类型** | 二阶 SQL 注入(Second-Order SQL Injection) | | **需要认证** | 是(任何具有 Events 权限的用户) | | **CVSS** | 8.8(高) | ## 工作原理 该漏洞是一个**两阶段**(二阶)SQL 注入: 1. **阶段 1 — 存储**:攻击者重命名一个事件(或编辑其 Cause 字段),使其包含 SQL payload。ZoneMinder 为此写入操作使用了参数化查询,因此 payload 被安全地存储在数据库中——没有任何 WAF 或过滤器拦截它。 2. **阶段 2 — 触发**:攻击者通过 status API 请求 `nearevents` 实体。`getNearEvents()` 函数从数据库读取存储的事件名称/原因(Name/Cause),并在**没有进行清理(sanitization)的情况下将其直接拼接进一条新的 SQL 查询中**,导致 SQL 注入。 因为注入向量(存储的数据)与触发器(一个纯净的 GET 请求)是分开的,所以这绕过了大多数输入级别的保护。 ## 安装 ``` git clone https://github.com/d3vn0mi/CVE-2026-27470-POC.git cd CVE-2026-27470-POC pip install -r requirements.txt ``` ## 用法 ### 基础用法 — 提取数据库版本 ``` python3 poc.py -t http://10.10.10.10 -u admin -p password ``` ### 自定义 SQL 查询 ``` python3 poc.py -t http://10.10.10.10 -u admin -p password --query "SELECT user()" ``` ### 导出所有用户和密码哈希 ``` python3 poc.py -t http://10.10.10.10 -u admin -p password --dump-users ``` 凭据信息默认保存到 `dumped_creds.txt` 中。 ### 将结果保存到自定义文件 ``` python3 poc.py -t http://10.10.10.10 -u admin -p password --dump-users -o loot.txt python3 poc.py -t http://10.10.10.10 -u admin -p password --query "SELECT @@datadir" -o result.txt ``` ### 通过代理路由(Burp / mitmproxy) ``` python3 poc.py -t http://10.10.10.10 -u admin -p password --proxy http://127.0.0.1:8080 ``` ### 使用 Cause 字段代替 Name ``` python3 poc.py -t http://10.10.10.10 -u admin -p password --field Cause --query "SELECT database()" ``` ### 手动指定事件 ID ``` python3 poc.py -t http://10.10.10.10 -u admin -p password --event-id 42 ``` ### 详细 / 调试输出 ``` python3 poc.py -t http://10.10.10.10 -u admin -p password -v ``` ## 选项 | 标志 | 描述 | 默认值 | |-----------------|----------------------------------------------------|--------------------| | `-t, --target` | 目标 URL | *(必填)* | | `-u, --username`| ZoneMinder 用户名 | *(必填)* | | `-p, --password`| ZoneMinder 密码 | *(必填)* | | `--query` | 要执行的 SQL 查询 | `SELECT VERSION()` | | `--dump-users` | 导出所有用户名和密码哈希 | | | `-o, --output` | 将结果保存到文件 | `dumped_creds.txt` | | `--event-id` | 用作注入载体的事件 ID | *(自动检测)* | | `--field` | 注入字段:`Name` 或 `Cause` | `Name` | | `--no-restore` | 在利用后不恢复事件名称 | | | `--proxy` | HTTP 代理 URL | | | `--timeout` | 请求超时时间(秒) | `30` | | `-v, --verbose` | 启用调试日志 | | ## 免责声明 本工具仅供**教育和授权的安全研究目的使用**。请勿对您不拥有或未获得明确书面测试许可的系统使用此工具。对于因使用本工具而造成的任何误用或损害,作者不承担任何责任。 ## 参考 - [ZoneMinder 官方网站](https://zoneminder.com/) - [ZoneMinder GitHub 仓库](https://github.com/ZoneMinder/ZoneMinder)
标签:CISA项目, Maven, Python, SQL注入, Web安全, 无后门, 漏洞利用, 漏洞验证, 蓝队分析