Revive Adserver 5.5.2反射型XSS漏洞技术分析

本文详细分析了Revive Adserver 5.5.2版本中存在的反射型跨站脚本漏洞,包括漏洞成因、攻击原理、影响范围及修复方案。该漏洞位于admin-search.php文件的compact参数,由于缺乏输入验证导致恶意代码执行。

Revive Adserver反射型跨站脚本(XSS)漏洞技术分析

漏洞概述

在Revive Adserver 5.5.2版本中发现了一个反射型跨站脚本(XSS)漏洞。该漏洞允许攻击者向应用程序注入恶意JavaScript代码,这些代码将在受害者浏览器中执行。

漏洞详情

漏洞位置

漏洞存在于admin-search.php文件中,可通过compact参数进行利用。

根本原因

admin-search.php文件中的compact参数输入净化不足。该参数直接嵌入到HTML输出中而没有进行适当的转义,使得攻击者能够注入任意JavaScript代码。

受影响代码

受影响代码位于lib/templates/admin/layout/search.html

1
<input type='hidden' name='compact' value='{$compact}'>

www/admin/admin-search.php中,compact参数未经适当净化即传递给模板:

1
2
3
4
5
6
7
phpAds_registerGlobalUnslashed('keyword', 'client', 'campaign', 'banner', 'zone', 'affiliate', 'compact');
...
if (!isset($compact)) {
    $compact = false;
}
...
$oTpl->assign('compact', $compact);

概念验证(POC)

攻击者可以通过构造包含JavaScript payload的恶意URL来利用此漏洞:

1
http://target-ip/www/admin/admin-search.php?affiliate=1&banner=1&campaign=1&client=1&compact=1'><script>alert(document.cookie)</script>&keyword=1&zone=1

影响分析

此漏洞的影响十分严重,攻击者能够:

  • 窃取敏感信息(如会话cookie)
  • 以受害者身份执行操作
  • 将受害者重定向到恶意网站
  • 篡改应用程序界面

任何能够诱骗受害者点击恶意链接的用户都可以利用此漏洞,这使其成为需要立即关注的关键安全问题。

修复过程

漏洞确认

开发团队确认了该漏洞,但指出在最近的Revive Adserver版本中,管理员会话cookie设置了httpOnly标志,无法被"窃取"。

修复方案

开发团队提供了修复补丁,确保$compact变量始终为布尔值(true或false),而不是直接从用户输入获取的字符串。

CVE分配

该漏洞被分配了CVE编号:CVE-2025-27208。

时间线

  • 2025年4月14日:漏洞报告提交
  • 2025年4月14日:漏洞确认并进入处理流程
  • 2025年5月28日:漏洞标记为已解决
  • 2025年10月22日:漏洞公开披露

补充说明

即使XSS漏洞无法窃取cookie,攻击者仍可通过XHR请求模拟敏感操作(如管理员添加用户),对受害者造成持续影响。

报告人:Jiasheng He (https://github.com/hebing123) from Qihoo 360
严重程度:中等(4.3)
弱点类型:反射型跨站脚本(XSS)

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计