漏洞概述 该漏洞涉及在MFA(多因素认证)流程中,由于对用户提供的“next”查询/表单参数缺乏验证,导致存在开放重定向的风险。攻击者可以利用此漏洞将用户重定向到恶意网站,从而进行凭证钓鱼攻击。 影响范围 受影响组件:MFA流程中的 和 端点。 攻击场景:攻击者可以构造恶意链接,诱导已登录用户点击,进而将用户重定向到攻击者控制的域名。 修复方案 1. 引入 辅助函数: - 该函数仅允许同源HTTP(S)目标(包括相对路径),并拒绝以下情况: - 绝对和协议相对的外部主机(如 )。 - 非HTTP方案(如 、 、 )。 - 用户信息陷阱(如 )。 - 反斜杠变体(如 、 ),这些可能被浏览器规范化为前向斜杠,从而启用协议相对绕过。 - 空/缺失目标。 2. 修改MFA流程: - 在 和 端点中,使用 函数验证用户提供的“next”参数。 - 如果目标不是安全的,则回退到内部浏览器索引。 - 注册POST请求保留其现有的“internal”哨兵(从应用对话框呈现)。 3. 添加测试用例: - 为 函数添加专门的单元测试,覆盖每个接受/拒绝类别。 - 添加集成测试,验证攻击者有效载荷从报告并断言响应重定向到内部索引而不是攻击者示例。 POC代码 以下是与漏洞相关的POC代码: 总结 该漏洞通过引入 辅助函数并修改MFA流程中的相关端点,有效防止了开放重定向攻击。同时,通过添加详细的测试用例,确保了修复的有效性和可靠性。