盲注之延时注入:
if()+sleep()
sleep()函数 相隔一秒后执行 but

如果数据库名字等于aaa 返回10 否则返回0 (类似c中的三木运算)

因为-->
在windows下是很难实现的。
1. windows不是实时操作系统。
2. Sleep(20)说明线程将自己放到阻塞队列当中,让操作系统在20ms后将其放
入就绪队列当中
3. 但如果此时就绪的线程多于1个(一般是这样),它不一定会选中这个线程。
4. 软中断和硬件中断也做不到这点,因为cpu在做某些底层操作时可能关中断。
5. 你可以使用不可屏蔽中断来做,不过未免。。。。。
下面是几种不同的替代方案。
1. 使用VxWorks这样的实时系统,这样可以达到微秒级。
2. 使用软中断也不错,关中断的时间毕竟不多,也不长。
3. 就是做个内核线程了(我曾经做过驱动程序,这是可取的)。
4. 最简单的是提高线程的优先级别,那么在就绪时更可能被调度,当然不是一定 ,
他很难竞争过内核线程。
select id from users where sleep(if(mid(database(),1,1)='s',10,0));

这条语句的作用就是 从 database的第一个 开始 截取一个 字符 如果 数据库名字和s相同 则触发sleep函数
在这里最好利用ascii码进行 判断 因为 直接用字符 自己能看懂但是有一些工具看不懂 或者 字符有可能被转义 比如 在url中 输入--+ 到后台数据库会显示--空格
比如

布尔盲注:
sqli第五关中 首先通过 '进行闭合 然后通过and连接条件 利用left函数 截取第
一个字符串中的指定长度 长度为第二个参数 主要是猜版本 知道 mysql数据库的版本第一个字符为 5 最后 使用 --+ 进行闭合
and left(version(),1)='5'--+





