0x01 SQL注入之盲注
提到SQL注入,我想懂安全的小伙伴们应该都知道的,那么今天就来聊一聊关于如何提高盲注效率的问题。
盲注的话大体上分为三类把。
- 布尔盲注
- 时间盲注
- 报错盲注
0x02 提高效率
一般盲注提高效率的话有两点
- 减少查询次数
- 提高查询的正确性
那么第一种方法我想说的就是二分法
二分法的话,学过数据结构的人都懂的,答题思路我用如下python代码来做介绍:
1 | def inject(a, list, start, end): |
这里我解释一下上述的代码。这里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位二进制