• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
京亟
很多时候,我们以为面前是大海、是沟壑、是深渊,但是当你越过去回头再看的时候,那不过是溪流、是台阶、是浅滩。 联系方式:jinqiqaq@foxmail.com
博客园    首页    新随笔    联系   管理    订阅  订阅

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

posted @ 2018-08-30 22:24  京亟QAQ  阅读(1410)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3