1、waitfor用法介绍
功能:指定触发语句块、存储过程或事务执行的时间、时间间隔或事件。
语法:WAITFOR { DELAY 'time' | TIME 'time' }
参数:
DELAY:指等过了指定的时间过去后再执行SQL。
TIME:指等到了指定的时间点后再执行SQL。
'time':要等待的时间。可以按 datetime 数据可接受的格式指定 time,也可以用局部变量指定此参数。格式为"HH:MM:SS",不支持日期,最长可达 24 小时。
2、waitfor 示例
例子1:指定等待1小时2分钟3秒后执行
waitfor delay '01:02:03'
select * from PS_Category
例子2:指定10点1分2秒时执行
waitfor time '10:01:02'
select * from PS_Category
3、SQL Server的WAITFOR DELAY注入
waitfor delay用来指定等待的时间。如果将该语句成功注入后,会造成数据库返回记录和Web请求也会响应延迟特定的时间。由于该语句不涉及条件判断等情况,所以容易注入成功。根据Web请求是否有延迟,渗透测试人员就可以判断网站是否存在注入漏洞。同时,由于该语句并不返回特定内容,所以它也是盲注的重要检测方法。
例如:
http://www.my.com/find.aspx?ID=100 WAITFOR DELAY '0:0:10'--
其中,WAITFOR DELAY '0:0:10'--
表示延迟10秒,再继续执行。这样网页响应会延迟10秒。
4、注意
由于WAITFOR不是SQL的标准语句,所以它只适用于SQL Server数据库。