漏洞总结:WWBN/AVideo 验证码绕过 漏洞概述 该漏洞存在于 项目中,攻击者可以通过控制 的 参数(验证码长度)并配合缺失的 Token 失效机制,实现对验证码的确定性绕过。 主要包含三个协同缺陷: 1. 外部控制验证码强度: 参数未做最小值限制或类型检查,攻击者可将其设为 1,生成单字符验证码。 2. 会话中存储的字母表过小:验证码仅从 25 个字母(A-Z 减去 I, O, Q, U, V, W, X, Y, Z)和 2-9 的数字中生成,且未区分大小写,导致实际熵值极低(约 33 种组合)。 3. 弱比较与 Token 未失效:验证逻辑使用不区分大小写的比较,且只有在验证成功时才会清除会话中的验证码 Token。验证失败时 Token 保留,允许攻击者在同一会话中无限次重试。 影响范围 受影响版本: <= 29.0 CVSS 评分:5.3 / 10 (Moderate) 攻击向量:网络 影响: 自动化账户创建/垃圾注册 ( ) 用户枚举/密码重置滥用 ( ) 垃圾邮件发送 ( ) 评论/捐赠/钱包滥用 ( , ) 利用条件:无需认证,针对公开暴露的匿名端点。 修复方案 1. 限制参数范围:在 中对 参数进行钳制(Clamp),确保其处于安全的服务端范围内(例如 5 到 9)。 2. 强制 Token 失效:在 的 函数中,无论验证成功还是失败,都必须 会话中的验证码 Token,确保每次猜测消耗一个新鲜 Token。 3. 增强随机性:使用 CSPRNG(如 )替代 来生成验证码,防止预测。 POC 代码 步骤 1:获取单字符验证码 步骤 2:暴力破解单字符答案**