Revive Adserver 漏洞分析:因输入净化不当导致的潜在拒绝服务风险

本报告详细分析了Revive Adserver 6.0.1版本中存在的一个存储型脚本注入漏洞。攻击者通过控制账户设置中的特定字段,可注入恶意脚本,当管理员或其他特权用户查看相关页面时,可能引发拒绝服务攻击。

Revive Adserver | 报告 #3399218 - 设置中不当的输入净化可能导致拒绝服务攻击

报告时间:2025年10月25日 凌晨4:42 (UTC) 报告者:lu3ky-13 (已验证黑客) 报告状态:已解决 严重性:低 (CVSS 2.7) CVE ID:CVE-2025-52666

漏洞概述

account-settings-email.php 文件中发现一个输入净化/编码问题。攻击者可以控制的 email_fromNameemail_fromCompany 字段值在被保存后,后续在页面上渲染时没有进行适当的输出编码。由于可以持久化并执行任意JavaScript代码,攻击者能够运行脚本来破坏或替换页面UI——实质上导致受害者无法使用该网站(DOM层面的拒绝服务攻击)。这是一个存储型脚本注入漏洞,当渲染给管理员或特权用户时具有高影响。

安全概念验证

  1. 访问 http://localhost/test2/revive-adserver-6.0.1/www/admin/account-settings-email.php
  2. email_fromNameemail_fromCompany 字段中添加有效载荷
  3. 这将导致网站所有功能无法使用

HTTP请求示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
POST /test2/revive-adserver-6.0.1/www/admin/account-settings-email.php HTTP/1.1
Host: localhost
Content-Length: 1122
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryAFTySI5FcKHdgQSw

------WebKitFormBoundaryAFTySI5FcKHdgQSw
Content-Disposition: form-data; name="email_fromName"

1@aa.com
------WebKitFormBoundaryAFTySI5FcKHdgQSw
Content-Disposition: form-data; name="email_fromCompany"

1@aa.com
...
------WebKitFormBoundaryAFTySI5FcKHdgQSw--

使用到的有效载荷示例

1
'"()%26%25<zzz><ScRiPt >alert(9645)</ScRiPt>

影响

当持久化的值被渲染到用户查看的任何页面时,会在应用程序源中执行任意脚本。

可能的攻击行为包括:

  • 替换页面内容或移除UI控件(使受害者无法使用站点)。
  • 阻止与应用程序的交互(禁用按钮、隐藏表单)——对于查看受感染页面的用户而言,这实质上是一种定向拒绝服务攻击。
  • 针对用户的钓鱼覆盖、强制操作或其他客户端攻击(仅当Cookie/会话未加固时可能发生数据窃取)。
  • 如果管理员用户查看受影响的页面,影响将很高(站点中断;可能在管理员上下文中执行特权操作)。

时间线与处理过程

  • 2025-10-25 04:42 UTC:报告提交,初始状态为“新”,严重性评级为“高(7.3)”。
  • 2025-10-25 07:09 UTC:项目成员 mbeccati 要求提供更多信息,询问生成问题的有效载荷类型。
  • 2025-10-25 14:11 UTC:报告者提供了具体的有效载荷示例,并指出其他部分也存在相同问题。
  • 2025-10-25 18:16 UTC:项目成员确认问题“非常有趣”,状态更新为“已分类”。
  • 2025-10-26 10:54 UTC:项目成员附上了修复补丁 (h1-3399218.patch),并解释了漏洞原理:代码没有正确转义具有特殊含义的 % 字符(在Symfony参数中),使用两个百分号之间的意外内容可能导致应用程序崩溃。同时指出风险较低,因为只有管理员可以更改设置,且设置页面受到CSRF保护。
  • 2025-10-26 11:29 UTC:严重性从“高(7.3)”下调至“低(2.7)”。理由是攻击者需要管理员权限,且最多只能破坏管理员UI。
  • 2025-10-27 12:03 UTC:项目成员确认该报告覆盖了所有设置,因为根本原因是相同的。
  • 2025-10-28 11:04 UTC:报告状态更新为“已解决”。项目成员计划在11月5日(周三)进行安全更新,修复包括此漏洞在内的多个问题,并会申请CVE-ID。
  • 2025-10-31 13:48 UTC:报告标题从“存储型JavaScript注入…”更改为“设置中不当的输入净化可能导致拒绝服务攻击”。
  • 2025-10-31 14:23 UTC:更新CVE引用为 CVE-2025-52666
  • 2025-11-10 22:21 UTC:报告者请求公开披露此报告。
  • 约13天前:项目成员同意披露,报告被公开。

补充信息

报告者在交流中询问了关于CVE分配和漏洞奖励的问题。项目方确认如果漏洞被确认,每个报告都会获得CVE-ID,并将在新版本发布时公开披露。报告者要求的署名信息为:Ahmed Abdalkhaliq Abdulla (Lu3ky.13)。

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