Revive Adserver SQL 注入漏洞分析:关键词参数引发的数据库安全风险
Revive Adserver SQL 注入漏洞技术分析
漏洞概述
在 Revive Adserver 的管理搜索功能中发现了一个严重的 SQL 注入漏洞,具体位于 admin-search.php 文件中。该漏洞存在于 keyword GET 参数的处理过程中,该参数被传递给多个数据库查询,但缺乏适当的清理或参数化处理。
漏洞根源
漏洞源于使用phpAds_registerGlobalUnslashed()函数注册用户输入变量(包括 keyword),但未进行适当的转义:
随后,这些用户控制的输入被直接传递给多个数据库查询函数:
即使不检查这些函数的实现,也能明显看出它们在将 keyword 参数纳入 SQL 查询之前没有进行适当的清理,从而导致 SQL 注入。
技术分析
使用 SQLMap 测试确认了两种不同的 SQL 注入漏洞:
基于错误的注入(使用 MySQL 的 EXTRACTVALUE 函数):
基于时间的盲注(使用 MySQL 的 SLEEP 函数):
复现步骤
打开 Burp Suite 并使用其内置浏览器
访问以下请求:
http://localhost/www/admin/admin-search.php?keyword=FUZZ&compact=t使用 Burp Suite 捕获请求
使用
nano testsql.txt将请求保存到文本文件运行以下命令:
您将看到数据库被提取出来
影响范围
此漏洞允许经过身份验证的攻击者:
从数据库中提取敏感信息
修改或删除数据库内容
可能在数据库服务器上执行特权命令
通过数据泄露可能升级到更严重的攻击向量
SQLMap 测试成功识别了数据库名称,并确认能够通过易受攻击的参数执行任意 SQL 查询。
根本原因
根本原因是输入验证不当,以及缺乏预处理语句或参数化查询。应用程序直接将用户控制的输入纳入 SQL 查询,而没有足够的清理或转义机制。
这是 Revive Adserver 源代码中的一个基本代码缺陷,而不是配置错误的结果。
修复过程
开发团队确认了该漏洞,并提供了一个临时修复补丁。实际上,该漏洞存在于未维护的 PEAR MDB2 包中,特别是在 matchPattern 功能中,该功能以错误的顺序应用不同类型的转义,导致字符串转义不当。
团队计划发布 6.0.1 版本,并请求 CVE-ID(CVE-2025-52664),在发布后不久披露报告并发布安全公告。
漏洞状态
严重程度:高(8.8)
状态:已解决
CVE ID:CVE-2025-52664
弱点类型:SQL 注入
经过测试,修复补丁成功缓解了 SQL 注入漏洞,同时保持了所有搜索功能,查询正常工作且没有错误,输入清理功能正确处理用户输入。更多精彩内容 请关注我的个人公众号 公众号(办公 AI 智能小助手)对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)
公众号二维码
公众号二维码







评论