pikachu学习-暴力破解模块
一个aaa 人气:0安装好XAMPP,burpsuite,配置好pikachu我们就可以进行pikachu平台的漏洞学习
我这篇博客主要写暴力破解模块讲解,它分为4个小模块,分别是“基于表单的暴力破解”,“验证码绕过(on client)”,“验证码绕过(on server)”,“token防爆破?”
1.基于表单的暴力破解
进入界面以后我们可以随意输入一组用户名密码,根据返回信息判断用户名密码正确性
用户名密码不正确,我们可以看一下burpsuite抓包信息
我们发现它的认证因素只有用户名密码,没有验证码,像这种简单防护基本都可以进行暴力破解,
那么我们直接将抓到的信息发送的到暴力破解模块进行暴力破解
暴力破解模块有4个选项卡,第一个选项卡Target即我们发送过来的目标地址和端口
第二个选项卡Position即可以看到发送到数据包信息
我们将没用的变量清除(clear)掉,然后添加(add)username和password变量,再选择攻击模式为cluster bomb
这里补充一下各种攻击模式的区别:
Sinper:一个变量设置一个payload进行攻击
Battering ram:可以设置两个变量,把payload同时给两个变量
Pitchfork:两个变量分别设置payload,然后按顺序一一对应进行破解
Cluster bomb:两个变量分别设置payload,然后交叉列所有情况进行破解(常用)
接下来点击第三个选项卡
因为我们选择的是Cluster bomb模式,所以有两个payload,写入相应字典,我随便写的,
当然如果你有自己的字典的话将plyload type选为Runtime file导入自己的字典也可以,
点击第四个选项卡Options将Grep-match里信息清除,然后添加我们页面用户名密码错误返回的信息
因为有的时候我们字典很庞大,一个一个去撞只看length很难看出,Grep-match可以很快帮我们找出返回信息跟你add的信息有区别的记录
接下来点击开始开始爆破
如上图,没有对号的即没有返回错误信息的,看length亦可,我们试一下“admin,123456”,正确
2.验证码绕过(on client)
这一关虽然加了验证码,但是通过观察源码可以发现,输入的验证码是通过前端的js进行验证,浏览器前端用js做验证码很轻松就可以绕过,所以说几乎没用
我们也可以抓包看一下,将数据包发送到repeater模块,在这个模块我们可以手动修改数据包内容,这里可以直接将内容返回后台,我们将验证码不输验证码,直接发送后台,我们发现返回信息“username or password is not exist” 意思就是我们直接绕过了验证码,看到了返回信息,这是因为验证码提交了但没有进行后台验证。
好了接下来步骤跟基于表单的暴力破解相同,我直接给出爆破结果
3.验证码绕过(on server)
随便输入一组用户名密码,验证码,抓包,并将抓到的包发送到repeater模块,
我们不输验证码,或输入错误验证码试一下,
我们发现返回验证码未输入或错误等信息,说明验证码在后端进行了验证,
那我们再试一下验证码是否会过期,在浏览器输入界面先不要提交,直接刷新界面抓包,发送到repeater模块
我们这次验证码是29xh19,我们在repeater模块输入用户名密码验证码提交
得到用户名密码返回信息,这是一定的,因为这是这个验证码的第一次利用,接下来不改验证码,输入其他用户名密码试一下
我们发现依旧返回用户名密码错误,说明验证码没有过期,可以重复利用,ok,验证码绕过了,接下来我们按照“基于表单的暴力破解”一步步暴力破解即可
我直接给出破解后用户名密码
4.token是否防爆破?
答案是不能的,
在pikachu “token防爆破”界面打开浏览器开发者选项,打开Web控制台,用选择器查看一下我们提交的Form表单
我们发现除了用户名密码之外还有一个隐藏的input标签,它的name是token,那串数字即token值,它的作用就是当我们输入用户名密码点击登陆时,后台会根据用户名密码加上token值进行验证,token值会改变当我们刷新页面时。只有token值正确,才会对用户名密码进行验证,但其实也没有太大作用,因为它的值已经以字符串的方式直接输出到了前端html表单上
抓包之后,我们把token设置变量,options的grep extract添加token:
token变量的type设置成recursive grep
然后attack,
如图,得到用户名和密码。
加载全部内容