什么是盲注-based time
如果说基于boolean的盲注在页面上还可以看到0 or 1的回显的话,那么基于time的盲注完全就啥都看不到了!
但还有一个条件,就是“时间”,通过特定的输入,判断后台执行的时间,从而确认注入!
常用的Teat Payload:
kobe' and sleep(5)#
练习部分
打开pikachu靶场的盲注base on time部分。输入常规的破译代码发现并不能成功返回提示信息。
遇到这种无论输入任何信息,网页都不给予反馈的情况下,为了弄清楚我们输入的代码是否进入到后端产生了作用.我们需要构造如下的代码
allen' and sleep(5)#
这个语句的含义为在allen语句生效的同时运行语句sleep(5),意为让服务器休息五秒再作应答。
输入到网页中发现网页转圈五秒后才做出了应答,打开f12网络控制台也可见网页的回应等了五秒钟,说明我们植入的代码有效。
我们根据此构造代码
allen' and if((substr(database(),1,1))='a',sleep(5),null)#
此语句的意义在于如果在数据库名称的第2个字符开始,截取1个字符长度,输入该字符为a,则网页5秒后再做出响应。
输入后发现网页并未响应5秒,说明字符不是a,以此类推我们可以推断出整个数据库名称字符。过于繁琐只做原理演示不做完整解答。