SQL注入 基于时间的盲注
2018-09-29 本文已影响16人
dawsonenjoy
类似于基于布尔的盲注,通过注入特定语句,根据判断结果的对错将会出现一定时间的网页请求响应的延时。
1.利用sleep()函数进行延时注入:' and if(ascii(substr(database(),1,1))=115,1,sleep(5))--+
【这里跟前面基于布尔的盲注类似,都是正确的话页面正常,但错误将会异常,这里错误会导致页面等待5秒,已经数据库security第一位为s,所以=115时正常显示,如图】
2.利用benchmark()函数进行延时注入:' union select (if(substring(current,1,1)=char(115),benchmark(50000000,encode('msg','by 5 second')),null)),2,3 from (select database() as current) as tb1--+
【与sleep函数处理相反,只有当猜对值时才会有延时,这里因为第一位是s猜对了,所以benchmark函数会将encode('msg','by 5 second')执行50000000次。这里substring和substr一样,都是截取字符,里面current可以改,只要和第一个as后面的current一起换,tb1也随便换啥都行,benchmark第一个参数是执行次数,后面几个都无所谓(至少有一个参数就行)】