【SQL注入】如何提高盲注的效率

0x01 SQL注入之盲注

提到SQL注入,我想懂安全的小伙伴们应该都知道的,那么今天就来聊一聊关于如何提高盲注效率的问题。
盲注的话大体上分为三类把。

  • 布尔盲注
  • 时间盲注
  • 报错盲注

0x02 提高效率

一般盲注提高效率的话有两点

  1. 减少查询次数
  2. 提高查询的正确性

那么第一种方法我想说的就是二分法

二分法的话,学过数据结构的人都懂的,答题思路我用如下python代码来做介绍:

def inject(a, list, start, end):
        if start == end:
                return list[start]
        if ord(a) > list[(start+end)/2]:
                return inject(a, list, end/2, end)
        return inject(a, list, start, end/2)

这里我解释一下上述的代码。这里a是要查询的那一位字符,list是a-zA-Z0-9这种用来对比的字符串,start是开始,end是结束。进入函数,如果start等于end说明找到了,返回那个字符,如果a的ascii值大于list的中间字符的ascii,说明a的真正值在list的后半部分,因此start变为end/2;否则的话就是a的值在list的前半部分,因此end变成end/2

第二种方法就是位运算法

原理就是每次查询确定一位,这样一个字符只需要8次就可以确定了,利用位运算符&,可以通过bin(ascii('a'))&1,2,4,8,16...来获取8位二进制

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 最先接触编程的知识是在大学里面,大学里面学了一些基础的知识,c语言,java语言,单片机的汇编语言等;大学毕...
    oceanfive阅读 3,167评论 0 7
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,788评论 0 33
  • 不是不想交朋友,只是有点力不从心了。 所谓的知己好友通常都是难求的,能分享你的快乐和痛苦,懂的你真是太少,于是有些...
    曼季风阅读 2,604评论 0 0
  • 第一次来到畅仔的房间,被一面墙的书惊了,从人文到经济之类的都有,翻开看了几本,都有某某大学的馆章,我知道他曾在大学...
    朝夕日记阅读 459评论 0 0
  • 中秋临时,万家灯火通明, 人潮拥挤,冲向家的方向, 秋风萧瑟,唯独你无方向, 凉风瑟瑟,行于人海之中, 顿觉孤独,...
    若幽兰阅读 258评论 0 1