從IIS到SQL Server數(shù)據(jù)庫(kù)的安全
時(shí)間:2022-07-18 04:03:01 | 來(lái)源:建站知識(shí)
時(shí)間:2022-07-18 04:03:01 來(lái)源:建站知識(shí)
從codered到nimda等,一大堆蠕蟲(chóng)把原來(lái)需要人工利用的漏洞都變成了程序自動(dòng)利用了,大家還想去手工操作這些IIS漏洞么?讓我們調(diào)整重心,去看看服務(wù)器常用的數(shù)據(jù)庫(kù)吧。
一般網(wǎng)站都是基于數(shù)據(jù)庫(kù)的,特別是ASP、PHP、JSP這樣的用數(shù)據(jù)庫(kù)來(lái)動(dòng)態(tài)顯示的網(wǎng)站。很多網(wǎng)站可能多注意的是操作系統(tǒng)的漏洞,但是對(duì)數(shù)據(jù)庫(kù)和這些腳本的安全總是忽略,也沒(méi)有太多注意。
從最比較普遍的腳本問(wèn)題開(kāi)始,這些都是老話(huà)題了,大家可以參考Hectic寫(xiě)的《關(guān)于數(shù)據(jù)庫(kù)的簡(jiǎn)單入侵和無(wú)賴(lài)破壞,以天融信做例子》,該文章對(duì)從SQL腳本問(wèn)題說(shuō)得非常詳細(xì)。對(duì)于腳本安全的解決,也可以通過(guò)過(guò)濾來(lái)實(shí)現(xiàn),可以參考我以前寫(xiě)的。對(duì)于A(yíng)SP來(lái)說(shuō),可以使用下面這個(gè)過(guò)濾函數(shù):
Function Filter_SQL(strData)
Dim strFilter
Dim blnFlag
Dim i
strFilter="’,;,//,--,@,_,exec,declare" ’需要過(guò)濾的字符,可以自己添加,","是分隔符
blnFlag=Flase ’過(guò)濾標(biāo)志,如果產(chǎn)生過(guò)濾,那么就是真
Dim arrayFilter
arrayFilter=Split(strFilter,",")
For i=0 To UBound(arrayFilter)
If Instr(strData,arrayFilter(i))>0 Then
blnFlag=True
Exit For
End If
Next
If blnFlag Then
Response.Redirect "wrong.ASP"
’當(dāng)發(fā)現(xiàn)有過(guò)濾操作時(shí),導(dǎo)向一個(gè)預(yù)定頁(yè)面。反正正常訪(fǎng)問(wèn)用不到的連接請(qǐng)求,總不是好事情。
Else
Filter_SQL=strData
End If
End Function
對(duì)于MS SQL Server數(shù)據(jù)庫(kù)來(lái)說(shuō),安全問(wèn)題不僅僅局限在腳本上了?!疤鞖⒌奈④洝钡南到y(tǒng)性很強(qiáng),整個(gè)基于WINDOWS系統(tǒng)的應(yīng)用都有很強(qiáng)的關(guān)聯(lián)性,對(duì)SQL Server來(lái)說(shuō),基本可以把數(shù)據(jù)庫(kù)管理和系統(tǒng)管理等同起來(lái)了。SQL Server默認(rèn)的管理員帳號(hào)“sa”的密碼是空的,這給多數(shù)NT服務(wù)器產(chǎn)生一個(gè)安全漏洞。小榕的“SQLRCMD”,就能夠利用獲得的數(shù)據(jù)庫(kù)管理員帳號(hào)執(zhí)行系統(tǒng)命令。
在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