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智能小助手)
公众号二维码