WAITFOR是SQL Server中Transact-SQL提供的一个流程控制语句。它的作用就是等待特定时间,然后继续执行后续的语句。它包含一个参数DELAY,用来指定等待的时间。如果将该语句成功注入后,会造成数据库返回记录和Web请求也会响应延迟特定的时间。由于该语句不涉及条件判断等情况,所以容易注入成功。根据Web请求是否有延迟,渗透测试人员就可以判断网站是否存在注入漏洞。同时,由于该语句并不返回特定内容,所以它也是盲注的重要检测方法。
例如,构建以下注入语句:
find.asp?ID=300 WAITFOR DELAY ‘0:0:4′–
其中,WAITFOR DELAY ‘0:0:4′– 表示延迟4秒,再继续执行。这样网页响应会延迟4秒。
PS:由于WAITFOR不是SQL的标准语句,所以它只适用于SQL Server数据库。