什么是基于时间的盲注
如果说基于boolean的盲注在页面上还可以看到0 or 1的回显的话,那么基于time的盲注就什么也看不到了!
但是有个条件,就是“时间”,通过特定的输入,判断后台执行的时间,从而确定注入!
下面我会通过演示来让大家了解基于时间的盲注
- 首先打开pikachu种的SQL-Inject 中的盲注(base on time)
我们先输入一个单引号,点击查询
这个地方是没有报错的
我们在输入kobe
也是输出I don’t care我们再输入如图的字符串
同样的也提示出I don’t care
是不是说明这个地方没有注入点呢,或者是说我们没有好的方法去判断我们输入的这个kobe到底有没有参与这个Apache呢,所以我们有去测试它,基于时间的这个测试
把浏览器的开发者打开,如图所示
打开其中的控制台
然后打开网络,重新载入这个链接,在做这样的一个测试,让它休息5秒钟
Apache里有个函数叫"sleep()"
我们就可以看到这个时间线,它用的是5000多毫秒,就是可以解释为那是我们输入的sleep(5)的一段函数可以执行了,我们就可以确定这个注入的是基于时间的盲注
我们可以在记事本中写下
基于时间的延迟:
kobe' and if ((substr(database(),1,1))='p',sleep=(5),null)#
substr是数据名称取出来,通过database是数据名称的第一个字符名称取出来,而p使我们这两个进行比较的点,我们猜测的点可以设为任何字母,假设我们设a,而null就是假不等于a
然后进行查询,发现很快就有结果,而第一个字符串不是a用p做测试之后提交前面一直在转,没有返回的结果所以就等于p
这种盲注就是我们不停地尝试出它的结果得来的,如果有就是网页前面在转,如果没有就不在转