IPBUF安全漏洞报告
English
CVE-2026-43878 CVSS 6.1 中危

CVE-2026-43878: WWBN AVideo plugin/Meet/iframe.php 存储型跨站脚本漏洞

披露日期: 2026-05-11

漏洞信息

漏洞编号
CVE-2026-43878
漏洞类型
跨站脚本 (XSS)
CVSS评分
6.1 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
WWBN AVideo

相关标签

XSSCross-Site ScriptingWWBN AVideoCVE-2026-43878Web SecurityClient-side Injection

漏洞概述

WWBN AVideo 是一个开源的视频平台。在其 29.0 及以下版本中,发现了一个存储型跨站脚本(XSS)漏洞。该漏洞存在于 `plugin/Meet/iframe.php` 文件中,由于未对用户提交的 `user` 和 `pass` 查询参数进行适当的转义处理,系统直接将这些受攻击者控制的内容回显到 `<script>` 标签内的 JavaScript 双引号字符串字面量中。如果目标系统上存在公开的 Meet 日程,攻击者无需进行身份认证即可利用此漏洞。攻击者可以通过诱导受害者访问特制的恶意链接,打破 JavaScript 字符串限制,从而在受害者的浏览器上下文中执行任意 JavaScript 代码。该漏洞的 CVSS 评分为 6.1,属于中危级别。

技术细节

该漏洞的根本原因是 WWBN AVideo 在处理 `plugin/Meet/iframe.php` 的请求时,缺乏对输出内容的编码和转义机制。具体而言,后端代码直接获取 HTTP GET 请求中的 `user` 和 `pass` 参数,并将其嵌入到 HTML 页面的 JavaScript 代码中。例如,代码逻辑可能类似于:`var user = "[USER_INPUT]";`。

由于没有过滤双引号(`"`)、反斜杠(`\`)等特殊字符,攻击者可以注入闭合引号来截断当前的字符串变量,并插入恶意的 JavaScript 代码。例如,当 `user` 参数被设置为 `"; alert(document.cookie); //` 时,生成的 JavaScript 代码将变为:`var user = ""; alert(document.cookie); //";`。这将导致 `alert` 函数被执行,而 `//` 会将后续原本的代码注释掉。

根据 CVSS 向量 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N,攻击可以通过网络发起(AV:N),攻击复杂度低(AC:L),无需特权(PR:N),但需要用户交互(UI:R),即受害者需要点击攻击者构造的链接。虽然需要用户交互,但如果存在公开的 Meet 日程,攻击者无需登录即可访问该接口。成功利用后,攻击者可窃取 Session Cookie、劫持用户会话或执行其他恶意操作,影响机密性和完整性。

攻击链分析

STEP 1
1. 侦察
攻击者识别出目标正在使用 WWBN AVideo 平台,且版本在 29.0 或以下。同时确认目标启用了 Meet 插件并存在公开的日程安排,这意味着无需认证即可访问 vulnerable endpoint。
STEP 2
2. 制作载荷
攻击者构造恶意的 URL,利用 `user` 或 `pass` 参数注入 JavaScript 代码。例如:`?user=";alert(1);//`。这将闭合原有的 JS 字符串并插入执行代码。
STEP 3
3. 投递攻击
攻击者将包含恶意载荷的 URL 通过电子邮件、社交媒体或其他方式发送给目标受害者,诱导受害者点击链接。
STEP 4
4. 执行代码
当受害者点击链接时,浏览器请求 `iframe.php`。服务器未转义参数,直接将载荷嵌入响应页面的 `<script>` 标签中。受害者的浏览器解析并执行攻击者的 JavaScript 代码。
STEP 5
5. 后渗透利用
执行的 JS 代码在 AVideo 的源上下文中运行,可以读取受害者的 Session Cookie、进行钓鱼操作或利用受害者的权限执行后台 API 调用。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// The following URL demonstrates the vulnerability. // By injecting a double quote, we break out of the string literal // and execute arbitrary JavaScript. // Target URL format: // https://[target-domain]/plugin/Meet/iframe.php?user=[PAYLOAD]&pass=test // Payload to execute alert(1): // "; alert(1); // // Full Example URL: // https://example.com/plugin/Meet/iframe.php?user=%22%3B%20alert%28document.cookie%29%3B%20%2F%2F&pass=test

影响范围

WWBN AVideo <= 29.0

防御指南

临时缓解措施
如果无法立即升级,建议通过 Web 服务器(如 Nginx 或 Apache)配置访问控制规则,临时限制对 `/plugin/Meet/iframe.php` 路径的访问,或者禁用 Meet 插件以阻断攻击面。同时,管理员应检查系统日志,确认是否已被利用。

参考链接