全网最全-2FA绕过的19种方法

admin 2025年6月4日09:10:27评论28 views字数 2996阅读9分59秒阅读模式

方法 1:响应操作

拦截来自身份验证请求的响应,并将“成功”字段从“false”修改为“true”以绕过 2FA 检查。

原始回复:

{"success": false,"message": "Authentication failed"}

编辑后的回复:

{"success": true, "message": "Authentication failed"}

方法2:状态代码操作

将HTTP状态码从4xx(表示身份验证失败)更改为200 OK状态码,查看是否允许访问。这可能会诱使系统认为身份验证成功。

原始答复:

HTTP/1.1 401 UnauthorizedContent-Type: application/json "error": "Invalid credentials" }

编辑后的回复:

HTTP/1.1 200 OKContent-Type: application/json{"error": "Invalid credentials"}

方法3:响应中的2FA代码泄漏

检查触发 2FA 代码请求的响应,确认 2FA 代码是否在响应正文中泄露。如果泄露,则无需经过正确的 2FA 流程即可使用该代码进行身份验证。

HTTP/1.1 200 OKContent-Type: application/json{"message": "Authentication successful","2fa_code": "123456"}

方法4:2FA代码可重用性

生成2FA代码并将其用于身份验证。尝试在不同的会话中重用相同的2FA代码。成功重用可能表明存在安全漏洞。

POST /authenticateContent-Type: application/json{"username": "user123","2fa_code": "123456"}

方法五:JS文件分析

假设您正在测试一个 Web 应用程序,并且您怀疑 JavaScript 文件可能包含有关 2FA 实现的信息。

要求:

GET /path/to/suspected-js-file.js HTTP/1.1Host: example.com

回复:

HTTP/1.1 200 OKContent-Type: application/javascript// Sample JavaScript file// This file may contain information about the 2FA implementationvar twoFactorEnabled = true;var twoFactorMethod = "SMS";function authenticateWith2FA() {// Code for 2FA authentication}// ... Other JavaScript code ...

然后,您可以进一步分析JavaScript代码,以确定是否存在与2FA实现相关的任何漏洞或问题。

方法6:缺乏暴力保护

利用2FA API上没有速率限制的情况来强制执行2FA代码。尝试各种代码,直到找到正确的代码。您也可以使用Burps Suite的入侵者工具。

POST /2faContent-Type: application/json{"username": "user123","2fa_code": "123456"}

方法7:缺少2FA代码完整性验证

利用代码完整性验证的缺失来检查您是否可以将相同的2FA代码用于其他用户的2FA验证。

POST /authenticateContent-Type: application/json{"username": "user123","2fa_code": "123456"}

方法8:2FA禁用CSRF

利用CSRF保护的缺失,在用户不知情的情况下禁用2FA。

POST /disable-2faContent-Type: application/json{"disable": true}

方法 9:使用“记住我”功能绕过 2FA

尝试使用“记住我”功能绕过 2FA,该功能可能会将 2FA 信息存储在 cookie、会话、本地存储或 IP 地址中。

POST /authenticateContent-Type: application/json{"username": "user123","remember_me": true}

方法 10:直接请求发布经过身份验证的页面

GET /authenticated-api

直接点击 2FA 之后的 API 或任何经过身份验证的页面/API,看看它是否绕过了 2FA 限制。

方法 11:绕过 2FA 引用检查

导航到经过身份验证的页面,如果不成功,则将 Referer 标头更改为 2FA 页面 URL,以欺骗应用程序认为该请求是在满足 2FA 之后发出的。

GET /authenticated-pageReferer: https://example.com/2fa

方法 12:连续 OTP 号码

检查生成的 OTP 是否连续,以便预测下一个 OTP。如果系统生成的 OTP 可预测,则可以利用这一点。

有效的 OTP 请求 1:

POST /request-otpContent-Type: application/json{"2fa": "500060"}

有效的 OTP 请求 2:

POST /request-otpContent-Type: application/json{"2fa": "500061"}

方法13:删除OTP参数

尝试通过从请求中删除 OTP 参数来绕过 2FA。

原始请求:

POST /validate-otp Content-Type: application/json "email": "[email protected]","2fa": "500061" }

修改后的请求:

POST /validate-otp Content-Type: application/json "email": "[email protected]"}

方法 14:操作 OTP 参数值

尝试对 OTP 参数进行各种操作,看看是否可以绕过 2FA。

POST /validate-otp Content-Type: application/json {"2fa": "123456", // make it "2fa": """2fa": "123456", // make it "2fa": "null""2fa": "123456", // make it "2fa": "true""2fa": "123456", // make it "2fa": null"2fa": "123456", // make it "2fa": "00000"

方法15:密码重置/电子邮件更改禁用2FA

重置用户密码或更改电子邮件后,2FA可能会自动禁用,这可能会被利用。

方法16:滥用备份代码

尝试使用备份代码功能删除/重置2FA限制。这可能涉及在处理备份代码时发现漏洞。

方法17:在2FA禁用页面上点击劫持

尝试通过iflaming 2FA禁用页面来使用点击劫持,并在未经受害者同意的情况下对其进行社交工程以禁用2FA。

方法18:启用2FA不会使以前活动的会话过期

利用启用2FA不会使以前活动的会话过期的行为,允许在没有2FA的情况下继续进行未经授权的访问。

方法 19:2FA 代码有效性

  • 请求多个 2FA 代码,并检查之前请求的 2FA 代码是否可用于进行身份验证。
  • 请求 MFA 代码,等待更长时间,然后尝试使用相同的代码;成功使用可能表明存在安全漏洞。

 

原文始发于微信公众号(红云谈安全):全网最全-2FA绕过的19种方法

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年6月4日09:10:27
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   全网最全-2FA绕过的19种方法https://cn-sec.com/archives/4128934.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息