试验材料准备
皮卡丘靶场,地址:pikachu.shifa23.com/
dvwa靶场下载地址:github.com/digininja/D…
pikachu靶场四个难度爆破
基于表单的暴力破解
此难度用于模拟无任何验证的登录框:
仅需编写字典即可爆破成功
- 步骤:
- 打开中间人代理,让数据包途径burpsuite工具再流向服务器:
- 随意输入账户与密码并点击登录后进行抓包:
- 右击空白处将抓到的包发往intruder模块:
- 添加需要爆破的参数后选择cluster bomb模式:
5.编写用户名字典:
- 编写密码字典:
7.点击右上角start attack开始爆破:
- 得出爆破结果后寻找其中代码长度不同的一条:
- 此对用户名密码组合被找到,爆破成功。尝试在靶场登陆:
显示登录成功
前端验证绕过
步骤与普通的字典爆破差不多,唯一需要注意的是首次抓包时验证码需要输入正确:
结果为:
使用爆破出的用户名密码尝试登录:
登录成功
后端验证爆破
- 区分前后端验证的方法
右击空白处选择下图中的选项抓取返回包:
点击forward跟进后会抓到返回包,可以看到下次需要输入的验证码:
而此靶场的前端验证点击验证码则不会有请求包发出,所以可以使用这种方法区分验证方式
操作步骤与前两种相同,得到的结果为:
token防护爆破
- 这种防护方式与前两种验证方式不同,token是服务器随机生成的令牌,且每验证一次就会生成新的token,所以需要每次与用户名密码一起验证才能通过。那么在爆破的时候同样需要填入服务器生成的token。所以若有这种防护模式,不能像前三种爆破方法一样批量穷举,只能单条发送进行验证
token防护的请求包截图:
所以这种情况下需要知道要爆破的账号,抓包并添加到爆破模块后,选择pitchfork模式,并用递归形式进行爆破:
这里的payload1对应的是密码,用简单形式就可以:
payload2对应的则是token,设置步骤如下:
- 将payload type 设置为recursive grep:
- 将爆破次数设置为一次:
- 将服务器发送的返回包中的token套入payload2:
返回payloads可以看到payload2设置好了:
start attack后找到length值最大的一条即可得知密码: