0x01
现在的网站安全性越来越高,防爆破机制也越来越多,token 验证便是其中比较常见的一种。客户端每次请求服务器时,服务器会返回一个 token,下次请求时,客户端需要带上这个 token,否则服务器认为请求不合法。且这个 token 不可重复使用,每次请求都将生成新的 token,并导致旧的 token 失效。
0x02
token 机制使得我们的爆破变得困难了许多,但正所谓道高一尺魔高一丈,神器 BurpSuite 已经为我们提供了这一问题的解决方案,接下来就由老夫将这武林秘籍授予你们!(哈哈哈一不小心就中二了)
0x03
PIkachu 靶场第 4 关,token防爆破
首先浏览器设置代理,然后点击登录,burp 拦截到请求,可以看到请求携带了 token。
右键,Send to Repeater,然后点击 go,发送请求,提示 username or password is not exists~,并且可以看到返回了新的 token。
再次点击 go,又返回了新的 token,且提示 csrf token error,说明旧的 token 已经失效。
由此我们可以知道,每次请求服务端都会返回新的 token,并且会放在页面上,我们只需要将这个值拿出去,并且放到请求里带上即可。
0x04
在 Repeater 界面单机右键,Send to Intruder,来到 Intruder 界面。
点击 Position,点击 Clear,清除默认荷载,然后依次分别选择密码部分和 token 部分的值并点击 Add,(账号部分我就不选中了,因为我知道账号就是 admin),Attack Type 选择 Pitchfork,完成后如下图。
接着点击 Payloads,首先设置密码的字典,选择从文件加载。
然后设置 token,首先把 Payload Set 切换到 2,因为我们刚刚 Add 的时候 token 是在第二个位置,密码是在第一个,这个其实就是设置第几个位置的荷载的值。
点击 Options,找到 Grep-Extract,点击 Add。
弹出一个框,点击 fetch response(或者 refetch response)。
然后我们搜索 token,点击 + 旁边的 < > 切换上一个和下一个,找到如下位置,然后双击选中 token 的值,如下图所示。
然后点击 ok,可以在 Grep - Extract 看到一条记录,就是我们刚刚加的。
接下来设置 Redirections,设置为 Always。
继续设置线程数,设置为 1 个线程,因为多线程会导致 token 出现问题。
回到 Payloads,将 Payload set 2 的 Payload type 设置为 Recursive grep,如下设置。
一切准备就绪,点击 start attack 开始爆破。
可以看到每次带上的 token 都是不一样的,第 4 条记录的 Length 和其他的不一样,为正确的账号密码 admin 123456。
至此成功绕过 token 验证。
扫码 ╳ 关注我
白帽渗透笔记
分享、在看与点赞
动动你的手指头,帮忙点一下
原文始发于微信公众号(白帽渗透笔记):BurpSuite 暴力破解之绕过 token
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论