IIS漏洞對數據庫安全的知識分析
我們今天來講解下IIS漏洞的知識,在SQL Server中有很多系統存儲過程,有些是數據庫內部使用的,還有一些就是通過執行存儲過程來調用系統命令。 系統存儲過程:xp_cmdshell
就是以操作系統命令行解釋器的方式執行給定的命令字符串。它就具體語法是: xp_cmdshell {'command_string'} [, no_output]
xp_cmdshell
相對IIS漏洞而言,在默認情況下,只有 sysadmin 的成員才能執行。但是,sysadmin也可以授予其他用戶這個執行權限。在早期版本中,獲得 xp_cmdshell 執行權限的用戶在 SQL Server 服務的用戶帳戶中運行命令。學習IIS漏洞的知識時,我們應該謹慎。
可以通過配置選項配置 SQL Server,以便對 SQL Server 無 sa 訪問權限的用戶能夠在SQLExecutiveCmdExec Windows NT 帳戶中運行 xp_cmdshell。在 SQL Server 7.0 中,該帳戶稱為 SQLAgentCmdExec。現在對于SQL Server2000,只要有一個能執行該存儲過程的帳號就可以直接運行命令了。
對于 NT 和 WIN2000,當用戶不是 sysadmin 組的成員時,xp_cmdshell 將模擬使用 xp_sqlagent_proxy_account 指定的 SQL Server 代理程序的代理帳戶。如果代理帳戶不能用,則 xp_cmdshell 將失敗。所以即使有一個帳戶是master數據庫的db_owner,也不能執行這個存儲過程。
如果我們有一個能執行xp_cmdshell的數據庫帳號,比如是空口令的sa帳號。那么我們可以執行這樣的命令:
- exec xp_cmdshell 'net user refdom 123456 /add'
- exec xp_cmdshell 'net localgroup administrators refdom /add'
上面兩次調用就在系統的管理員組中添加了一個用戶:refdom
當我們獲得數據庫的sa管理員帳號后,就應該可以完全控制這個機器了。可見IIS漏洞對數據庫安全的重要性。
【編輯推薦】
























