作者:Narcher 时间:2023/10/18 分类:writeup
Broken brute-force protection, IP block
打开靶场,进入login界面,随便输入账号密码然后burp抓包,之后发送到Intruder模块,模式选择Pitchfork。
由于每错次个就会封ip,所以我们需要在需要爆破的用户名和密码中交替插入正确的用户名和密码,并保证一一对应。
利用notepad++的替换功能,制作字典。
密码字典同理。
之后分别在payload1和payload2导入字典,设置线程数为1,即可开始爆破。
设置筛选carlos
找到长度异常的请求,使用其payload1和payload2登录成功
Username enumeration via account lock
本题重复登录5次就会锁定账号,所以把所有账号进行5次枚举,使用Intruder中的Cluster bomb
发现异常数据,猜测auth为用户名,故爆破其密码(虽然有锁定,但我们可以观察报错信息),选用Sniper
发现123456789为密码时报错信息长度异常,使用auth:123456789登录,成功
2FA broken logic
先登录wiener:peter,在burp的target-map下找到此网站的login2
尝试将verify修改为我们要攻击的账号,故退出登录,重新登录wiener:peter,只是这次拦截login2,先放过第一个包,再拦截第二个包和第三个包并修改verify为carlos,完成之后发现还要输入验证码,根据登录wiener:peter的经验可知验证码是4位纯数字组合,因此我们直接爆破即可
得验证码为1657,之后输入验证码同时拦截包,将verify改为carlos,即可成功
Brute-forcing a stay-logged-in cookie
首先根据现有凭据登录,并勾选stay logged in
登录之后发现存在stay-logged-in
base64解密得:wiener:51dc30ddc473d43a6011e9ebba6ca770
后面的部分用MD5解密得到peter
于是我们先退出登录,之后对stay-logged-in进行爆破
需要设置好payload的处理方式,先对密码进行MD5加密,之后添加前缀carlos:,最后进行baes64加密,之后开始爆破
根据长度排序
Y2FybG9zOjlkZjNiMDFjNjBkZjIwZDEzODQzODQxZmYwZDQ0ODJj
base64解密:carlos:9df3b01c60df20d13843841ff0d4482c
MD5解密:access
成功
Offline password cracking
首先利用现有凭据wiener:peter登录,之后去首页随便找一篇博客评论
之后去access log里找到stay-logged-in:Y2FybG9zOjI2MzIzYzE2ZDVmNGRhYmZmM2JiMTM2ZjI0NjBhOTQz
base64解密:carlos:26323c16d5f4dabff3bb136f2460a943
MD5解密:onceuponatime
之后删除carlos的账户即可成功
Password reset poisoning via middleware
首先,点击忘记密码,输入carlos的用户名,点击submit后用burp拦截,在header位置添加X-Forwarded-Host并指向自己的服务器
之后去服务器的日志中查看发现获取到了carlos的token:3ek1baacsobkwf15q6sqjetimcb6atm8
之后登录wiener的账号并去获取wiener的邮箱账号,并填写在忘记密码页面的信息栏中
前往邮箱获取到重置密码的url,将token改为carlos的token并访问
修改好密码后在点击提交时拦截,将token改为carlos的token并发送
之后用修改后的密码登录carlos即可成功
Password brute-force via password change
首先登录wiener:peter,之后通过修改密码查看返回信息
当原密码正确,新密码不一致时,提示New passwords do not match
当原密码错误,新密码不一致时,提示Current password is incorrect
因此我们可以使用新密码不一致来爆破原密码
载入字典,并设置好匹配关键字
爆破成功
之后使用carlos:654321登录即可完成
Broken brute-force protection, multiple credentials per request
登录拦截,发现以json格式发送登录凭据
故将字典修改格式
之后以[数据块]的格式发送密码即可成功
2FA bypass using a brute-force attack
先利用carlos:montoya进入验证码界面,随便输入验证码测试,发现输入两次错误验证码后会自动终止会话,但是,该用户并未被锁定,意味着我可以无限制地尝试。
如果每次尝试2FA会不断变化,我们没有办法爆破,但如果2FA在使用之前都一直有效,那么我们便可对其进行暴力破解。
登录过程涉及多个需要按顺序执行的请求,因此,我们可以使用宏,并尝试将这些请求合并到一个宏中。
操作步骤如下:
<1>登录carlos:montoya
<2>随便输入一个验证码,点击提交,报错
<3>进入burp,Project options的sessions,在Macro中选择如下的三个包,并Test macro正常
<4>进入session handling rules,点击Add,在 Scope的URL Scope中, 选择选项 Include all URLs;在Details中点击Add选择Run a marco,并将<3>中的marco加进去
<5>将POST /login2发送给Intruder,将字典设置为0000-9999,线程数设为1,爆破验证码即可
(爆破速度超级慢,不建议尝试,等之后有时间再做吧)