Pikachu-暴力破解模块

之前经过了sqli-labs和dvwa渗透测试平台的学习,对一些基本的web漏洞有了一些了解。所以在pikachu上,直接写实验步骤和查漏补缺,不整花里胡哨的重复话了。。。

暴力破解一:基于表单的破解

这是最简单的一种模式,首先测试,随便输入一个用户名密码和正确的用户名密码返回值不同:

 这样就可以暴力破解根据返回页面的不同数据区别

打开浏览器代理后直接用burp抓包,然后发送到intruder模块:

 清除没用的变量,然后添加username和password变量,再选择攻击模式为cluster bomb

 这里补充一下各种攻击模式的区别:

Sinper:一个变量设置一个payload进行攻击

Battering ram:可以设置两个变量,把payload同时给两个变量

Pitchfork:两个变量分别设置payload,然后按顺序一一对应进行破解

Cluster bomb:两个变量分别设置payload,然后交叉列所有情况进行破解(常用)

下一步设置payload,字典是我为实验方便写了几个简单的,可以按自己的字典:

 最后option可以根据自己需要设置线程,有的好像不支持高并发:

然后补充一下grep match这,大多数情况下我们根据返回页面的length不同观察,但是也可以自己设置falg:

 可以看到暴力破解的结果:除了根据返回的length的不同之外,还可以根据是否有错误的返回的标志判断:

 得出用户名密码。

暴力破解之验证码的绕过(on client):

这一关虽然加了验证码,但是通过观察源码可以发现,输入的验证码是通过前端的js进行验证,很轻松就可以绕过,可以说形同虚设:

输入之后抓包,然后发送到repeater模块:

下面可以看出,是否输入验证码,或者是否输入正确的验证码已经不会再检测:

 

 这就是在前端检测验证码,可以轻松绕过,然后发送到Intruder模块进行破解:

 得出用户名密码。

暴力破解模块之验证码绕过(On Server)

观察源码,这个是在后端的检测的验证码,我们绕过的思路就是观察他产生的验证码有没有过期设置(用过一次刷新),如果没有默认的session就是24min刷新

 可以看到,输入错误的验证码会被检测到,因为检测是在后端完成。看似很严谨了,但是我们输入正确的验证码之后,验证码并没有过期,还可以继续使用。

 然后就可以用这个正确的验证码,进行暴力破解,其余步骤相同:

 得到用户名密码。

暴力破解之token防爆破嘛?

答案是并不能。

token原理略过,观察网页源码发现from表单除了提交username和password之外,还提交了一个hidden属性的token值:

这样每次提交要验证token值(每次更新),表面上可以防止。但是他后端产生的token每次以明文形式传到前端,就有了漏洞。

抓包之后,我们把token设置变量,options的grep extract添加token:

 token变量的type设置成recursive grep

 然后attack

 

 得到用户密码。

注意:recursive grep类型只能单线程attack,并且不会结束,因为后端会一直向前端返回token值。

猜你喜欢

转载自www.cnblogs.com/hzk001/p/12292071.html
今日推荐