Revive Adserver | 报告 #3091390 - Revive Adserver 5.5.2中的反射型跨站脚本(XSS)漏洞
漏洞概述
在Revive Adserver版本5.5.2中发现了一个反射型跨站脚本(XSS)漏洞。该漏洞允许攻击者将恶意JavaScript代码注入到应用程序中,然后在受害者的浏览器上下文中执行。该漏洞存在于admin-search.php文件中,可通过compact参数进行利用。
漏洞成因
该漏洞是由于admin-search.php文件中compact参数的输入清理不足造成的。compact参数在没有适当转义的情况下直接嵌入到HTML输出中,使得攻击者能够注入任意JavaScript代码。
受影响的代码位于lib/templates/admin/layout/search.html:
|
|
compact参数在www/admin/admin-search.php中未经适当清理就传递给模板:
|
|
概念验证(POC)
攻击者可以通过在compact参数中包含JavaScript payload来构造恶意URL,从而利用此漏洞。当管理员访问此URL时,恶意脚本将在其浏览器中执行。
|
|
影响范围
此漏洞的影响十分严重,因为它允许攻击者:
- 窃取敏感信息,如会话cookies
- 以受害者身份执行操作
- 将受害者重定向到恶意网站
- 篡改应用程序界面
任何能够诱骗受害者点击恶意链接的用户都可以利用此漏洞,这使其成为一个需要立即关注的关键安全问题。
时间线
- 2025年4月14日 6:32 UTC - env_bak向Revive Adserver提交报告
- 2025年4月14日 13:04 UTC - 漏洞被确认为"已分类",管理员会话cookie在最新版本中为httpOnly且无法被"窃取"
- 2025年4月14日 13:59 UTC - 提供了修复补丁
- 2025年4月15日 2:29 UTC - 确认修复方案有效
- 2025年5月28日 - 报告状态改为"已解决"
- 2025年7月3日 - 分配CVE编号CVE-2025-27208
- 2025年10月22日 - 报告被公开披露
技术细节
漏洞的根本原因是compact参数直接从用户输入获取,而没有进行适当的类型验证和转义处理。修复方案是确保$compact变量始终为布尔值(true或false),而不是直接从用户输入获取的字符串。
严重程度
该漏洞的严重程度被评定为中等(4.3),虽然无法直接窃取cookie,但攻击者仍可通过XHR请求模拟敏感操作,如管理员添加用户等。
贡献者
报告人:Jiasheng He(https://github.com/hebing123) from Qihoo 360