pikachu靶场---爆破+xss

基于表单的暴力破解

pikachu靶场---爆破+xss_第1张图片

 打开bp抓包,先随便输入一下用户名密码尝试登录,可以看到包中提交的明文形式的用户名和密码。将数据包转入intruder模块尝试暴力破解,将用户名和密码设置为payload:

pikachu靶场---爆破+xss_第2张图片

 两个payload分别选择了字典,点击start burp开始爆破尝试:

pikachu靶场---爆破+xss_第3张图片

爆破成功后可以看到正确的用户名和密码。 

验证码绕过(on server)

先输入用户名密码和验证码尝试一下,然后在bp中发现如果登录错误,客户端收到响应后就会发出一个刷新请求,得到响应后就刷新了验证码。

pikachu靶场---爆破+xss_第4张图片

所以这个验证码的刷新是由server控制的,再次尝试,将登录请求包一直重发,验证码也不会失效。所以我们就可以利用此漏洞,只要不放客户端刷新验证码的请求包,我们就可以一直进行爆破尝试: 

pikachu靶场---爆破+xss_第5张图片

 验证码绕过(on client)

还没发出就验证了,所以是前端问题

pikachu靶场---爆破+xss_第6张图片

 因为包还并没有放出去,所以这个弹出的验证应该就是在前端校验的,那我们直接把校验的前端代码删除就可以了;于是我们打开前端代码看一下:

pikachu靶场---爆破+xss_第7张图片

pikachu靶场---爆破+xss_第8张图片

 pikachu靶场---爆破+xss_第9张图片

 将验证码输入框的class=vcode删除,然后点击提交,我们发现bp直接收到了包,报文里也就没有校验码了。然后我们就可以直接爆破了:

pikachu靶场---爆破+xss_第10张图片

token防爆破

我们尝试抓包,发现有token:

pikachu靶场---爆破+xss_第11张图片

 在返回的响应包的前端代码中发现有token值:

pikachu靶场---爆破+xss_第12张图片

于是尝试每次读取,放入payload中,(因为token一次有效,所以选择的模式,为pitchfork):

pikachu靶场---爆破+xss_第13张图片

 其中类型是递归,token值是在通过下面读取的:

pikachu靶场---爆破+xss_第14张图片

 

 最后设置线程为1,防止token重用:

pikachu靶场---爆破+xss_第15张图片

 最后爆出结果:

pikachu靶场---爆破+xss_第16张图片

 反射型xss(get)

发现他有输入限制,但是因为是get方式传入请求,于是尝试改url补全payload:

pikachu靶场---爆破+xss_第17张图片

 

将payload补写完整,发现可以成功谈你出警告框,说明payload被当做前端代码成功解析,但是重新刷新,页面变回原来状态。

反射型xss(post)

pikachu靶场---爆破+xss_第18张图片

 尝试发现url中没有请求,那么应该是post方式传入请求,我们可以直接写:

pikachu靶场---爆破+xss_第19张图片我们也可以抓包来写payload:

 pikachu靶场---爆破+xss_第20张图片成功注入:

pikachu靶场---爆破+xss_第21张图片

 

 

你可能感兴趣的:(xss,前端)