pikachu漏洞练习平台使用笔记-暴力破解(token防爆破)

原理

token一般用在两个方面:防止表单重复提交和csrf,我这里只说防止表单重复提交。

他的工作原理是这样的:我们访问表单页面,服务器在返回表单页面时,会生成一个token值,保存在session中,并把这个值传给表单页面,当我们输入用户名密码后,点击提交,会把用户名密码以及token一起提交,服务器会把提交过来的token值与session中的值相比,如果相同就通过验证,不同就不通过,即使用户名密码是对的也不会通过。token验证成功后,会更新一个新的token,如果进行重复提交,那么提交过来的token还是原来的token值,而服务器session中的值已经更新了,就会验证失败,从而防止了重复提交表单。

举个例子:

访问一个登陆页面,服务器收到请求后,生成一个token值(比如aaa),分别保存在服务器的session中(aaa)和返回的页面中(aaa),然后我们输入用户名密码,点击提交,向服务器发送的数据包含三个值:用户名、密码、保存在表单页面中的token(aaa),服务器收到后,会将计较过来的token(aaa)与保存在session中的值(aaa)对比,相同,通过token验证。可以进行接下来的用户名密码验证等。并且会更新session中的值(比如变成bbb),如果表单重复提交,那么提交上来的token值依然是aaa,与session中的值(bbb)不同,验证失败。这样就可以做到防止表单重复提交,但是依然有办法破解。

利用

我们已经知道了token放爆破的方法,那么接下来就进行破解,我们知道,他是根据所提交的token值判断,而这个token值我们可以通过返回包得到,只要在提交时,从返回包里拿到token一并提交即可。

burpsuite抓包,可以发现,他提交了一个token值,这个值应该是我们访问这个页面时就已经在表单中了,查看网页源代码也可以看到。我们需要得到每一个返回包中的token值,然后进行爆破。

pikachu漏洞练习平台使用笔记-暴力破解(token防爆破)_第1张图片

发送到intruder,然后把用户名、密码、token设为变量,攻击模式选择pitchfork(一个用户名对应一个密码对应一个token值)

pikachu漏洞练习平台使用笔记-暴力破解(token防爆破)_第2张图片

然后点击options,把线程设为1

pikachu漏洞练习平台使用笔记-暴力破解(token防爆破)_第3张图片

 然后选择grep-extract->add,点击refech response获取返回包,找到其中的token值,点击选中,然后确定。

pikachu漏洞练习平台使用笔记-暴力破解(token防爆破)_第4张图片

 然后设置payloads,用户名密码直接设置即可,token变量设置为recusive grep。然后开始爆破

pikachu漏洞练习平台使用笔记-暴力破解(token防爆破)_第5张图片

 可以看到,爆破成功

pikachu漏洞练习平台使用笔记-暴力破解(token防爆破)_第6张图片

你可能感兴趣的:(pikachu漏洞练习平台使用笔记-暴力破解(token防爆破))