打开题目,
测试发现过滤了很多字符,不过可以堆叠注入:
1;show tables;#
然后尝试读取表Flag,
发现union,prepare,handler等都过滤了,基本我会的方法都过滤了。。。
看了看wp,说是比赛时题目泄露了源码
select $_GET['query'] || flag from flag
然后有两种解
payload:*,1
查询语句:select *,1||flag from Flag
payload:1;set sql_mode=PIPES_AS_CONCAT;select 1
解析:
- 在oracle 缺省支持 通过 ‘ || ’ 来实现字符串拼接。
- 但在mysql 缺省不支持。需要调整mysql 的sql_mode
模式:pipes_as_concat 来实现oracle 的一些功能。
总结:算是积累了一个知识点吧,不过我要是不知道源码真不会做,有的大佬说根据回显看出来后台语句。。。膜拜大佬。