zoukankan      html  css  js  c++  java
  • 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关一样,只是需要将报错注入改为盲注。

  • 相关阅读:
    PHP 使用 GET 传递数组变量
    Java实现 蓝桥杯 算法训练 数据交换
    Java实现 蓝桥杯 算法训练 数据交换
    Java实现 蓝桥杯 算法训练 数据交换
    Java实现 蓝桥杯 算法训练 景点游览
    Java实现 蓝桥杯 算法训练 景点游览
    Java实现 蓝桥杯 算法训练 景点游览
    Java实现 蓝桥杯 算法训练 二进制数数
    Java实现 蓝桥杯 算法训练 二进制数数
    Java实现 蓝桥杯 算法训练 二进制数数
  • 原文地址:https://www.cnblogs.com/jinqi520/p/9563088.html
Copyright © 2011-2022 走看看