漏洞探索/挖掘绕过双因素身份验证

admin 2024年4月19日17:11:06评论5 views字数 1463阅读4分52秒阅读模式

免责声明

该公众号发布的安全工具和项目源于网络资源,主要推荐给安全研究者和学习者作为研究、学习用途。如果用户将这些工具和信息应用于其他目的,由此产生的所有法律责任及连带责任均由使用者自行承担,工具的原作者和该公众号不承担任何相关责任。

双因素身份验证

双因素身份验证(Two-Factor Authentication, 2FA)是一种强化的安全机制,旨在提高用户账户和数据的安全性,防止未经授权的访问。它要求用户提供两种不同类型的凭据(或称为“因素”)来验证其身份,而不是仅仅依赖单一的密码。这种双重验证方式显著增加了攻击者成功入侵账户的难度,因为即使他们掌握了用户的某个凭据(如密码),如果没有第二个凭据,也无法完成身份验证过程。

工作流程

双因素身份验证的典型流程如下:
1).用户输入第一因素(如用户名和密码)以登录账户。
2).系统检测到用户已启用2FA,触发第二阶段验证。
3).用户通过第二因素进行身份确认,如输入从短信接收的一次性密码,或使用硬件令牌显示的验证码,或通过生物识别技术验证身份。
4).系统验证第二因素的有效性和一致性。
5).如果两个因素均验证成功,用户被授予访问权限;否则,登录尝试失败。

绕过双因素身份验证各种思路总结

1.会话权限绕过
1).使用同一会话,使用您的帐户和受害者的帐户启动流程。
2).当在两个账户上都达到2FA点时。
3).使用您的帐户完成2FA,但不要访问下一部分。
4).相反,尝试使用受害者的账户流进入下一步。

5).如果后端只在会话中设置一个布尔值,表示您已成功通过2FA,则您将能够绕过受害者的2FA.

2.可以尝试使用自己的凭据登录,但在进行2FA时,把“帐户”cookie的值更改为其他用户名。Cookie: account=victim-user

3. false响应状态改为true.

4. 响应状态代码是4XX,如401、402等 改为200 OK.

HTTP/2 400 Bad Request修改为HTTP/2 200 OK

5.直接访问经过身份验证才能访问的页面;不能访问,尝试修改来源(Referrer)为进行2FA时的url. Referer: XXX

6.2FA的验证码泄露,在所有响应包中搜索,看是否有2FA验证码。

7.查看响应包中引用的js文件,在js文件中查找可以绕过验证的代码。

8.对验证码进行暴力破解,看速率有没有限制;若有限制,点击“重新发送代码”看验证码是不是相同的并且速率是否会重置,是的会也可以进行暴力破解;很多情况下登录有速率限制,但是重要的操作没有进行速率限制。”重新发送代码“没有进行速率限制,造成可以无限发送短信。

9.重置密码,可能绕过双因素验证。

在web应用程序中,密码重置功能在重置过程完成后一般会自动将用户登录到应用程序。

10.使用有效的验证码进行任意用户验证。

11.如果验证码足够的简单,可以一边不断重复使用同一个验证码进行验证,一边点击发送代码,让系统不断生成新的验证码,当系统生成的验证码和正在使用的验证码匹配,就可以登录成功。

12.如果2FA使用的是位于/v*/目录下的API(如“/v3/”),这可能意味着存在较旧的API端点,这些端点可能容易受到某种类型的2FA绕过。

13.发送空白验证码,看是否成功绕过2FA.

14.Email模式可能允许绕过2FA.
改为Email模式
mode: sms 改为 mode: email 
不使用2FA
secureLogin:true; 改为secureLogin:false 

原文始发于微信公众号(白帽子之路):漏洞探索/挖掘--绕过双因素身份验证

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年4月19日17:11:06
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   漏洞探索/挖掘绕过双因素身份验证http://cn-sec.com/archives/2673080.html

发表评论

匿名网友 填写信息