原理是利用mysql_multi_query()这个函数
用;隔开,同时执行多条sql查询语句
一般情况下都是使用mysqli_ query()函数,只能执行一条语句
回到题目,首先进入环境
只有一个查询框
那么随便输点字符试试
发现输入非零数
输入其他的无回显
这里试试联合查询,发现回显nonono
其他的盲注,报错注入都被过滤了,最后是堆叠注入行
还是被过滤
最后这题是要猜测他的查询语句
通过输入非零数字得到的回显1和输入其余字符得不到回显来判断出内部的查询语句可能存在有||,也就是select 输入的数据||内置的一个列名 from 表名,进一步进行猜测即为select post进去的数据||flag from Flag(含有数据的表名,通过堆叠注入可知),需要注意的是,此时的||起到的作用是or的作用
然后我们通过输入*,1
也就是select *,1 from Flag来得到Flag
另一种解法可以去上面参考博客的链接里看