sqli-labs(十二)(and和or的过滤)

 

第二十五关:

这关是过滤了and 和or

输入?id=1' or '1'='1

发现or被过滤了,将or换成and也一样。

输入?id=1' oorr '1'='1

 

这样就可以了,将一个or置空后,oorr还是会变成or。

其实感觉这关有点问题就是,这关可以利用联合注入来查询,其实根本不需要and和or的,and和or只是测试的时候初步判断注入的一种方法,不是需要的步骤。

只有当联表查询不能用的时候,必须使用报错注入或盲注的时候,才会必须使用and和or。

有时候程序过滤and和or的时候不是置空 而是用空格代替的话,我们上面的方法就不适用了。

这个时候可以使用&&代替and  使用||代替or。

直接使用||是没有问题的,但是&&需要使用url编码为%26%26  ,因为&在url中往往后面接参数,web服务器会将&后面的当成另一个参数。

 

第二十五a关:

和第二十五关一样,只不过关闭了报错信息,是一个盲注。

 

第二十六关:

输入?id=1' or '1'='1 #  发现空格和or以及#都被过滤了,继续尝试发现--  /*也被注释了

注释被过滤,可以使用闭合的方法,现在的重点是怎样绕过空格被过滤的办法,正常会使用/**/来替代空格,但是现在被过滤了

使用脚本测试下哪些编码是可以使用的,

其中%a0网上说是可以替代空格的,但是我尝试了 不行啊。。。 感觉和数据库版本有关吧

这里可以使用通过来不是用空格的

输入?id=0'||extractvalue(1, concat(0x5c, (database())))||'1'='1

输入?id=0'||extractvalue(1, concat(0x5c, (select(group_concat(schema_name))from(infoorrmation_schema.schemata))))||'1'='1

 

值得注意的是,这里用的了information_schema数据库名中包含了or,会被过滤,需要使用infoorrmation_schema来绕过。

 

第二十六a关:

和第26关一样,只是需要将报错注入改为盲注。

转载于:https://www.cnblogs.com/jinqi520/p/9563088.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值