漏洞总结:视频编码器接收器中未锚定持续时间正则导致的存储型 XSS 漏洞概述 在 项目的 文件中, 函数使用的正则表达式 缺少 结尾锚点。这导致攻击者可以在合法的时长前缀(如 )后注入任意 HTML/JavaScript 代码。由于后端未对输入进行充分验证,且前端输出时未进行 HTML 转义,导致恶意脚本被存储并在受影响的页面(如趋势页、播放列表页、视频缩略图页)中执行。 影响范围 受影响版本: CVSS 评分:5.4 / 10 (Moderate) 攻击向量:网络 影响: - 会话劫持:攻击者可窃取查看包含恶意视频页面的任何用户(包括管理员)的会话 Cookie。 - 账户接管:窃取管理员 Cookie 可获得平台完全控制权。 - 钓鱼攻击:可注入伪造的登录表单或重定向到恶意网站。 - 蠕虫潜力:由于 XSS 存在于常见访问的列表页面,可能无需针对性投递即可传播。 前提条件:攻击者需拥有上传权限(低权限),但影响范围覆盖所有查看该视频页面的用户。 修复方案 建议同时应用以下两个修复措施: 1. 锚定正则表达式 (Fix 1) 在 的 函数中,修改正则表达式以包含 锚点,确保只匹配完整的时长格式。 2. HTML 转义输出 (Fix 2) 在所有输出 变量的地方进行 HTML 实体转义,防止 XSS。 在 (第72行): 在 (第159行): 在 (第7209行): POC / 利用代码 1. 以具有上传权限的用户身份登录,获取一个视频的 。 2. 发送以下请求注入恶意载荷: 3. 访问包含该视频的页面(如趋势页或播放列表),恶意脚本将在受害者浏览器中执行。