文章正文
什么是2FA旁路?
第二层保护或双因素身份验证绕过是用于绕过(跳过)此安全层的技术或攻击。2FA绕过通常通过链接现有漏洞来实现。举例来说:
HTTP响应操作导致2FA绕过
user_id上用于禁用2FA的IDOR导致2FA bypass
在我们的例子中,缺乏CSRF对敏感功能的保护,比如禁用2FA。
什么是CSRF?
跨站点请求伪造是一种攻击,其中威胁行为者仔细伪造恶意HTTP请求,以欺骗受害者执行他们不打算执行的操作。
既然我们已经了解了基本知识,那么让我们进入漏洞。在执行Web应用程序测试时,我注意到它具有2FA功能。这是我最喜欢测试的功能之一,因为你可以得到非常有创意和有趣的bug。所以我很快就设置好了,你知道程序的......把手机拿出来......输入密码......输入密码,一切都搞定了。
2FA开启
所以,现在我有我的2FA上,我很快签出,以找到一些错误的登录像响应操纵,强制目录浏览,忘记密码,但我没有运气找到任何绕过功能。因此,我决定绕过2FA登录后,这样你就有两个不同的端点来测试登录前和登录后。一旦我登录,我决定寻找点击劫持删除用户或禁用2FA,但它都是安全的。然后我决定寻找IDOR,我捕获了禁用2FA请求,令我惊讶的是,没有对功能进行保护。服务器没有提示输入2FA代码或密码,而是通过一个简单的GET请求调用API来禁用第二层保护。
GET /api/v1/mfaturnoff HTTP/1.1 Host: staging.example.com Cookie: some imp cookies User-Agent: broswer Accept: application/json, text/plain, / Accept:application/json,text/plain,*/* Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Origin: https://example.com
当我注意到这个请求时,CSRF突然出现在我的脑海中,我使用Burp Suite生成了一个命令。
生成PoC的步骤
一旦我的POC生成,我将其保存在CSRF.html下,在不同的浏览器上创建了一个新帐户.打开我的CSRF POC,并提交了我的请求。服务器响应:
burp重放响应,但不要担心,我得到了它做
我已经成功地禁用了一个用户的2FA,而他们没有意识到这一点。为了满足我的恶意请求,Web应用程序中还有其他漏洞,比如缺少DMARC记录,这使得我可以向用户发送一封电子邮件,其中包含一个指向我的服务器的链接,该服务器为这个恶意HTTP请求提供服务。
由于没有涉及任何参数,因此可以使用该工具进行大规模开发。
该公司拖延了几个星期,最后完全停止了回复。我很高兴找到它并写下来。
原文始发于微信公众号(Z2O安全攻防):2FA bypass 让我赚了 $______
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论