上图~~~
这界面真是短小精炼,经过一番很正经的乱七八糟的操作,显然,在我即将刷完且没有刷完的sqli-labs的程度下,这道题对我来说是没有任何悬念的。操作之后发现只有输入非零数字回显“1”,输入其他字符得不到回显。这下是完了,我的盲区。
经过大佬推断,这里的内部查询语句可能有一个判断。我是这样理解:
select输入的数据 || 内置的一个列名 from 表名。
查看网页源码,发现为select POST 进去的数据 || flag from Flag
(这里的表明是含有数据的表明)并发现其注入方式为堆叠注入。并且这里的**||为or**的作用。
内置的sql语句为:sql="select".post['query']."||flag from Flag"
;
如果$post[‘query’]的数据为*
,1, sql语句就变成了select *,1||flag from Flag
,也就是slect * ,1 from Flag
,也就是直接查询出了Flag表中的所有数据。
输入方式:*,1
目前只能理解第一种方法
【扩展】堆叠注入