0%

Burpsuite靶场--Authentication

作者:Narcher 时间:2023/10/18 分类:writeup

Broken brute-force protection, IP block

打开靶场,进入login界面,随便输入账号密码然后burp抓包,之后发送到Intruder模块,模式选择Pitchfork。

uTools_1701181255706

由于每错次个就会封ip,所以我们需要在需要爆破的用户名和密码中交替插入正确的用户名和密码,并保证一一对应。

利用notepad++的替换功能,制作字典。

uTools_1701181560052

密码字典同理。

之后分别在payload1和payload2导入字典,设置线程数为1,即可开始爆破。

设置筛选carlos

uTools_1701181734660

找到长度异常的请求,使用其payload1和payload2登录成功

uTools_1701181796408

Username enumeration via account lock

本题重复登录5次就会锁定账号,所以把所有账号进行5次枚举,使用Intruder中的Cluster bomb

uTools_1701182516461

发现异常数据,猜测auth为用户名,故爆破其密码(虽然有锁定,但我们可以观察报错信息),选用Sniper

uTools_1701182677446

发现123456789为密码时报错信息长度异常,使用auth:123456789登录,成功

2FA broken logic

先登录wiener:peter,在burp的target-map下找到此网站的login2

uTools_1701183202786

尝试将verify修改为我们要攻击的账号,故退出登录,重新登录wiener:peter,只是这次拦截login2,先放过第一个包,再拦截第二个包和第三个包并修改verify为carlos,完成之后发现还要输入验证码,根据登录wiener:peter的经验可知验证码是4位纯数字组合,因此我们直接爆破即可

uTools_1701183999488

得验证码为1657,之后输入验证码同时拦截包,将verify改为carlos,即可成功

首先根据现有凭据登录,并勾选stay logged in

uTools_1701268022303

登录之后发现存在stay-logged-in

uTools_1701268088527

base64解密得:wiener:51dc30ddc473d43a6011e9ebba6ca770

后面的部分用MD5解密得到peter

uTools_1701268309820

于是我们先退出登录,之后对stay-logged-in进行爆破

需要设置好payload的处理方式,先对密码进行MD5加密,之后添加前缀carlos:,最后进行baes64加密,之后开始爆破

uTools_1701268715325

根据长度排序

uTools_1701268781046

Y2FybG9zOjlkZjNiMDFjNjBkZjIwZDEzODQzODQxZmYwZDQ0ODJj

base64解密:carlos:9df3b01c60df20d13843841ff0d4482c

MD5解密:access

成功

Offline password cracking

首先利用现有凭据wiener:peter登录,之后去首页随便找一篇博客评论

uTools_1701269449657

之后去access log里找到stay-logged-in:Y2FybG9zOjI2MzIzYzE2ZDVmNGRhYmZmM2JiMTM2ZjI0NjBhOTQz

uTools_1701269466473

base64解密:carlos:26323c16d5f4dabff3bb136f2460a943

MD5解密:onceuponatime

之后删除carlos的账户即可成功

Password reset poisoning via middleware

首先,点击忘记密码,输入carlos的用户名,点击submit后用burp拦截,在header位置添加X-Forwarded-Host并指向自己的服务器

uTools_1701435726142

之后去服务器的日志中查看发现获取到了carlos的token:3ek1baacsobkwf15q6sqjetimcb6atm8

uTools_1701436059591

之后登录wiener的账号并去获取wiener的邮箱账号,并填写在忘记密码页面的信息栏中

uTools_1701436254175

前往邮箱获取到重置密码的url,将token改为carlos的token并访问

修改好密码后在点击提交时拦截,将token改为carlos的token并发送

uTools_1701436441826

之后用修改后的密码登录carlos即可成功

Password brute-force via password change

首先登录wiener:peter,之后通过修改密码查看返回信息

当原密码正确,新密码不一致时,提示New passwords do not match

uTools_1701436984585

当原密码错误,新密码不一致时,提示Current password is incorrect

uTools_1701437024221

因此我们可以使用新密码不一致来爆破原密码

uTools_1701437156753

载入字典,并设置好匹配关键字

uTools_1701437250400

爆破成功

uTools_1701437321016

之后使用carlos:654321登录即可完成

Broken brute-force protection, multiple credentials per request

登录拦截,发现以json格式发送登录凭据

故将字典修改格式

uTools_1701437988795 uTools_1701438262273

之后以[数据块]的格式发送密码即可成功

uTools_1701438227866

2FA bypass using a brute-force attack

先利用carlos:montoya进入验证码界面,随便输入验证码测试,发现输入两次错误验证码后会自动终止会话,但是,该用户并未被锁定,意味着我可以无限制地尝试。

如果每次尝试2FA会不断变化,我们没有办法爆破,但如果2FA在使用之前都一直有效,那么我们便可对其进行暴力破解。

登录过程涉及多个需要按顺序执行的请求,因此,我们可以使用宏,并尝试将这些请求合并到一个宏中。

操作步骤如下:

<1>登录carlos:montoya

<2>随便输入一个验证码,点击提交,报错

<3>进入burp,Project options的sessions,在Macro中选择如下的三个包,并Test macro正常

uTools_1701612171637

<4>进入session handling rules,点击Add,在 Scope的URL Scope中, 选择选项 Include all URLs;在Details中点击Add选择Run a marco,并将<3>中的marco加进去

uTools_1701612388033

<5>将POST /login2发送给Intruder,将字典设置为0000-9999,线程数设为1,爆破验证码即可

(爆破速度超级慢,不建议尝试,等之后有时间再做吧)