跳转至

多因素身份验证 (MFA) 绕过

多因素身份验证 (MFA) 是一种安全措施,要求用户提供两个或多个验证因素才能访问系统、应用程序或网络。它结合了用户知道的东西(如密码)、用户拥有的东西(如手机或安全令牌)和/或用户本身的东西(生物识别验证)。这种分层方法大大提高了安全性,即使密码泄露,未经授权的访问也会变得非常困难。 MFA 绕过是攻击者用来规避 MFA 保护的技术。这些方法包括利用 MFA 实现中的弱点、拦截身份验证令牌、利用社会工程操作用户或支持人员,或者利用基于会话的漏洞。

摘要 (Summary)

2FA 绕过技术 (2FA Bypasses)

响应操纵 (Response Manipulation)

如果响应为 "success":false 将其更改为 "success":true

状态码操纵 (Status Code Manipulation)

如果状态码为 4xx 尝试将其更改为 200 OK,并观察是否能绕过限制

响应中泄露 2FA 代码 (2FA Code Leakage in Response)

检查触发 2FA 代码请求的响应中是否存在泄露的代码。

JS 文件分析 (JS File Analysis)

虽然少见,但某些 JS 文件可能包含有关 2FA 代码的信息,值得一试。

2FA 代码可重用性 (2FA Code Reusability)

相同的代码可以被多次使用。

缺乏暴力破解保护 (Lack of Brute-Force Protection)

可以暴力破解任意长度的 2FA 代码。

缺少 2FA 代码完整性验证 (Missing 2FA Code Integrity Validation)

任何用户账户生成的代码都可以被用来绕过 2FA。

禁用 2FA 时的 CSRF (CSRF on 2FA Disabling)

禁用 2FA 时没有 CSRF 保护,且没有身份验证确认。

密码重置禁用 2FA (Password Reset Disable 2FA)

在更改密码/更改邮箱时,2FA 会被禁用。

备用码滥用 (Backup Code Abuse)

通过滥用备用码 (Backup code) 功能绕过 2FA。 使用上述技术绕过备用码,从而移除/重置 2FA 限制。

禁用 2FA 页面上的点击劫持 (Clickjacking on 2FA Disabling Page)

使用 iframe 框架嵌入禁用 2FA 的页面,并通过社会工程学诱导受害者禁用 2FA。

启用 2FA 不会使之前的活动会话过期 (Enabling 2FA doesn't expire Previously active Sessions)

如果会话已被劫持且存在会话超时漏洞。

通过强制浏览绕过 2FA (Bypass 2FA by Force Browsing)

如果应用程序在禁用 2FA 时登录成功后会跳转到 /my-account URL,尝试在启用 2FA 后将 /2fa/verify 替换为 /my-account 以绕过验证。

使用 null 或 000000 绕过 2FA (Bypass 2FA with null or 000000)

输入代码 000000null 来尝试绕过 2FA 保护。

使用数组绕过 2FA (Bypass 2FA with array)

{
    "otp":[
        "1234",
        "1111",
        "1337", // 正确的 OTP
        "2222",
        "3333",
        "4444",
        "5555"
    ]
}