SQL Server的WAITFOR DELAY注入

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数据库。

————————————————————————————————————

posted @ 2019-07-09 21:29  willingtolove  阅读(9836)  评论(0编辑  收藏  举报