在与页面进行交互完成之后,页面没有数据回显,我们可以尝试使用时间盲注
原理
目标执行完我们构造的payload,根据判断条件,页面会有不同的延迟,从而判断数据值
函数
首先介绍几个相关的函数
if(条件,str1,str2),如果条件为true,返回str1,如果条件为false,返回str2
ascii(str),返回str的ascii值
sleep(num),num为数字,会使页面延迟num秒
substr(str,num1,num2),截取函数,str为要截取的字符串,num1,是起始位置(从1开始),num2是截取长度
length(str),返回str字符串的长度
实例
我们使用sql-labs进行试验,我们这里只讨论有关时间盲注的东西,如何找的注入点请忽略
首先我们判断当前数据库的字符长度
我们判断的条件是,当数据库字符长度大于5的时候,没有延迟,反之,延迟为5秒,这里页面返回的没有延迟,所以,数据库字符长度是大于5的,同理,我们更改5这个数字,发现数据库字符长度是8,
然后我们判断每个字符是什么,首先判断第一个
我们判断数据库名字的第一个字符的ascii值是否大于110,页面返回的时候没有延迟,说明条件为true,根据这个我们就可以判断剩余的的字符,最后判断出,数据库名字为security