SQL Server的WAITFOR DELAY注入
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數據庫。