Bypassing two-factor authentication 绕过双重认证
如果双重认证的实现存在缺陷的话,则可能被直接绕过。
如果是让用户先输入密码,再到另一个界面输入验证码,而实际上在输入验证码之前用户就已经是登录状态了。这种情况下,就可以在第一重认证之后直接跳转到登录之后的页面。甚至有时候,我们会发现网站就没有在加页面之前真正的去验证用户是否完成第二重认证。
Lab: 2FA simple bypass 双重认证的简单绕过
这个登录验证先要求输入密码,验证通过后需要输入邮箱验证码。我们先用给出的wiener:petter登录。点击Emailclient进入邮箱查看收到的验证码。
完成双重认证之后,可以登录的用好账户页,可以看到地址是/my-account?id=wiener。这里我们用篡改参数的方法,传入id=carlos,发现没法登录,被重定向到登录页了。
根据题目提示,我们用carlos的账号密码登录,需要用carlos的邮箱接收验证码。但是我们没有carlos的邮箱(模拟被攻击者,我们无法登录被攻击者的邮箱)。但是双重认证的漏洞就在这,如果网站没有在加载页面前真正去检测用户是否通过双重认证,那么就可以绕过。我们直接修改URL到/my-accout?id=carlos。发现可以登录成功,carlos的邮箱认证被绕过了,完成解题。
这个题相对仿真一点了。