基于表单的暴力破解
打开bp抓包,先随便输入一下用户名密码尝试登录,可以看到包中提交的明文形式的用户名和密码。将数据包转入intruder模块尝试暴力破解,将用户名和密码设置为payload:
两个payload分别选择了字典,点击start burp开始爆破尝试:
爆破成功后可以看到正确的用户名和密码。
验证码绕过(on server)
先输入用户名密码和验证码尝试一下,然后在bp中发现如果登录错误,客户端收到响应后就会发出一个刷新请求,得到响应后就刷新了验证码。
所以这个验证码的刷新是由server控制的,再次尝试,将登录请求包一直重发,验证码也不会失效。所以我们就可以利用此漏洞,只要不放客户端刷新验证码的请求包,我们就可以一直进行爆破尝试:
验证码绕过(on client)
还没发出就验证了,所以是前端问题
因为包还并没有放出去,所以这个弹出的验证应该就是在前端校验的,那我们直接把校验的前端代码删除就可以了;于是我们打开前端代码看一下:
将验证码输入框的class=vcode删除,然后点击提交,我们发现bp直接收到了包,报文里也就没有校验码了。然后我们就可以直接爆破了:
token防爆破
我们尝试抓包,发现有token:
在返回的响应包的前端代码中发现有token值:
于是尝试每次读取,放入payload中,(因为token一次有效,所以选择的模式,为pitchfork):
其中类型是递归,token值是在通过下面读取的:
最后设置线程为1,防止token重用:
最后爆出结果:
反射型xss(get)
发现他有输入限制,但是因为是get方式传入请求,于是尝试改url补全payload:
将payload补写完整,发现可以成功谈你出警告框,说明payload被当做前端代码成功解析,但是重新刷新,页面变回原来状态。
反射型xss(post)
尝试发现url中没有请求,那么应该是post方式传入请求,我们可以直接写:
我们也可以抓包来写payload:
成功注入: