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关一样,只是需要将报错注入改为盲注。

  • 相关阅读:
    Linux命令-read
    pytest8-skip与xfail
    python模块-contextlib
    python中eval的使用
    python学习-面向对象(六)
    java学习-IDEA运行java程序报错
    nginx 使用SSL证书 代理https
    BC30560: “ExtensionAttribute”在命名空间“System.Runtime.CompilerServices”中不明确。
    nginx 代理相对路径使用不起
    nginx 解决不同web服务器 在同一服务器使用80端口问题
  • 原文地址:https://www.cnblogs.com/jinqi520/p/9563088.html
Copyright © 2011-2022 走看看