burp suite抓包 经过简单几个尝试,可以判断应该是布尔盲注,还是字符型的 回显会判断是0还是1,也就是true或是false
我通过类似(ascii(substr(database(),1,1))<1) 的句子判断出了database()是ctf
但是没什么用,因为下一步爆表名的时候发现要么是无回显,要么是Nonono
搜了大佬们的解题 参考1 参考2
了解到可以用fuzz测试出被禁止使用的字符 关于fuzz现在还不熟悉,这里待补充
然后会发现想order、if、sleep、information_schema.tables 等都被过滤了
这道题正确方法是堆叠注入,只要没ban掉; 就行
爆数据库名:1;show databases; 爆数据表:1;show tables; 但是这里不能再继续1;select flag from Flag; 了,因为Flag 被过滤了
关键的查询代码是 select $_post['query']||flag from Flag (但是我没看懂这句话怎么来的)
也就是我们输入的query会和flag from Flag 进行或运算
解法1:1;set sql_mode=PIPES_AS_CONCAT;select 1
其中set sql_mode=pipes_as_concat 是将||的作用由or变为拼接字符串
解法2:*,1 也就是 select $_post['query']||flag from Flag 中$_post['query'] 换成*,1 ,也就变成了select *,1||flag from Flag 这样就可以输出flag了
|