双因素认证暴力破解绕过技术解析(2023更新版)

PortSwigger:使用暴力攻击绕过双因素认证(2023年更新)

作者:Aaryan Golatkar
阅读时间:4分钟 · 2023年5月17日 · 162次播放分享

PortSwigger Web安全学院:使用暴力攻击绕过双因素认证

欢迎大家!这是针对双因素认证绕过专家级实验室的更新版解题报告。由于实验室已更新,早期报告中提到的所有技术都已失效。不过,我发现了一种新的解决方案,将在本文中详细介绍。

发生了什么变化?

此前,即使重新登录后,生成的2FA代码也不会过期。而现在,每次登录时代码都会变更,之前的代码将立即失效。这就像试图捕捉一辆移动的卡车!

如何解决该实验室?

为每个请求使用随机四位数会降低获取正确代码的概率。考虑以下情况:

  • 请求1 → 正确代码:0141,我们提交:0140
  • 请求2 → 正确代码:0140,我们提交:0141

正确代码明显大于我们提交的代码。如果使用递增代码,获得有效代码的机会几乎为零。为了解决这个问题,我们必须提高获取正确代码的概率。如果我们重复提交同一代码一万次呢?在某个请求中,生成的2FA代码将会匹配,我们就有可能成功。

我们将使用宏(Macros)来解决这个实验室。如果想了解宏的使用方法,建议观看这个视频

解决方案

步骤1:启动Burp Suite

确保所有实验室服务器请求都被Burp Suite捕获。

步骤2:使用给定的用户名和密码登录

步骤3:转到Settings → Sessions → Add Macros

选择以下3个请求并进行配置:

GET /login
POST /login
GET /login2

选择后点击“OK”

已选请求

  • 选择GET /login → Configure Items → 选择CSRF令牌的值
  • 选择POST /login → Configure Items → 确保CSRF值来自前一个请求(GET /login)
  • 选择GET /login2 → Configure Items → 执行与GET /login相同的操作

连续点击“OK”直到返回Sessions选项卡

步骤4:选择Session Handling Rules → Add

在Rule Actions中选择Run a Macro
在Scope部分包含所有URL
在Session Handling Action Editor中选择我们创建的宏

所有设置已完成配置,现在是时候进行利用了!

步骤5:利用

拦截POST /login2请求(输入随机2FA代码)并发送到Intruder
选择mfa-code作为Payload Position,攻击类型:Sniper

如前所述,我们不选择随机/递增数字,而是选择一个代码并重复请求10,000次。我检查了之前的2FA认证实验室以了解生成的代码类型。

来自2FA简单绕过实验室的电子邮件客户端
如你所见,代码以0开头后接随机数字。因此我们可以选择任何以0开头的随机数字。这里我重复提交了10,000次数字0993。

转到Resource Pool并设置Maximum Concurrent Requests=1
启动攻击,最终你会找到一个302响应。

第2066个请求的302状态
右键点击请求 → Show response in browser

成功!实验室已解决!
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
公众号二维码

posted @ 2025-09-13 20:06  qife  阅读(7)  评论(0)    收藏  举报