声明:该公众号分享的安全工具和项目均来源于网络,仅供安全研究与学习之用,如用于其他用途,由使用者承担全部法律及连带责任,与工具作者和本公众号无关。
前提提醒:国外资产偏多
在开源视频监控平台 ZoneMinder
中发现的新安全漏洞,可能让攻击者能够控制 SQL
数据库,从而危害数据的机密性和系统完整性。此漏洞为 CVE-2024-51482
,获得了最高CVSS
评分10。
问题源自 web/ajax/event.php
函数中的基于布尔值的 SQL
注入漏洞。具体而言,缺乏对tagId
参数的输入验证,导致攻击者可以直接操纵SQL
查询。在ZoneMinder
版本v1.37.*至v1.37.64
中均存在此漏洞。漏洞发现过程中注意到,“$tagId
被直接放入$sql命令中并执行”,因此容易受到SQL
注入攻击。
利用
利用该漏洞,攻击者可以执行任意SQL命令,包括潜在的危险操作如DELETE命令。通过构造类似
http://hostname_or_ip/zm/index.php?view=request&request=event&action=removetag&tid=1
的URL,攻击者可以通过tid参数注入SQL语句。安全研究人员Entropt使用以下命令自动化了此过程:
sqlmap -u 'http://hostname_or_ip/zm/index.php?view=request&request=event&action=removetag&tid=1'
此类利用可能带来严重后果,包括数据泄露和通过 SLEEP
等命令导致的服务中断(DoS)
。
修复
解决此漏洞的方法是修改代码,使用参数化查询并在执行SQL语句前有效地清理输入数据。例如,更新后的代码将SQL查询改为使用占位符,从而防止直接注入:
$sql = "SELECT * FROM Events_Tags WHERE TagId = ?";$rowCount = dbNumRows($sql, $tagId);
后台回复:0042 获得Dorks