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