[SQL SERVER] xp_cmdshell 與 安全性問題

  • 3045
  • 0

摘要:[SQL SERVER] xp_cmdshell 與 安全性問題

xp_cmdshell讓Sql server以相同的服務帳務執行Windows command

是一個會影響安全性的功能

例如執行


Exec master..xp_cmdshell 'net user testUser P@ssw0rd123 /add'

可以在windows上建立一個testUser帳號

當然複製、刪除檔案等等,你想像的到的動作,大概都可以

若是遭受到Sql Injection攻擊....後果不敢想像,因此SQL SERVER預設是關閉此功能的。

 

可以透過語法才查看xp_cmdshell是否開啟


-- 1.
SELECT * FROM sys.configurations WHERE name = 'xp_cmdshell'

-- 2.
sp_configure 'show advanced',1
reconfigure;

sp_configure
GO;

-- 開啟
sp_configure 'xp_cmdshell',1
reconfigure;

--關閉
sp_configure 'xp_cmdshell',0
reconfigure;

 

建議還是不要開啟吧