Lab: 2FA broken logic:双重验证逻辑破坏靶场复盘

靶场内容:

This lab’s two-factor authentication is vulnerable due to its flawed logic. To solve the lab, access Carlos’s account page.

Your credentials: wiener:peter
Victim’s username: carlos

You also have access to the email server to receive your 2FA verification code.

漏洞分析:

  • 这里的双重验证漏洞是在于,发送电子邮件的时候可以爆破出验证码
  • 在登录我们自己的账号之后,会有一个提交验证码的过程,随便输入一个验证码,截获这个报文
  • 修改身份验证信息:将verify参数设置为carlos并向参数mfa-code设置payload
  • 使用python脚本写一个0000~9999的验证码字典进行爆破
  • 爆破之后用用浏览器打开对应的302URL即可通过靶场
  • 验证码是1997

脚本代码

def printnumber_for_2FA(path):  # 类似于0001这种验证码
    with open(path, 'w') as f:
        a = eval(input("输入起始数"))
        b = eval(input("输入最后一个数"))
        c = eval(input("输入验证码长度"))
        for i in range(a,b+1):
            if len(str(i))<c:
                s="0"*(c-len(str(i)))+str(i)
                f.write(s+"\n")
            else:
                f.write(str(i)+"\n")

关键截图:

在这里插入图片描述
在这里插入图片描述

posted @ 2021-08-19 15:17  Zeker62  阅读(214)  评论(0编辑  收藏  举报