题目要点
- 堆叠注入
- sql_mode
题目内容
解题
由官方wp的解释来看,这道题目需要我们去对后端语句进行猜测
通过 输入非零数字得到的回显1和输入其余字符得不到回显来判断出内部的查询语句可能存在有|| 1 ,也就是select 输入的数据||内置的一个列名 from 表名,进一步进行猜测即为select post进去的数据||flag from Flag(含有数据的表名,通过堆叠注入可知,需要注意的是,此时的||起到的作用是or的作用。
解法1
输入的内容为*,1
内置的sql语句为sql=“select”.
sql=“select”.post[‘query’]."||flag from Flag";
如果$post[‘query’]的数据为*,1
sql语句就变成了select *,1||flag from Flag,也就是select *,1 from Flag
也就是直接查询出了Flag表中的所有内容
解法2
输入的内容为1;set sql_mode=pipes_as_concat;select 1
其中set sql_mode=pipes_as_concat;的作用为将||的作用由or变为拼接字符串