堵塞Web漏洞(下) |
發(fā)布時間: 2012/8/9 15:15:17 |
解決方法:
(1)為你的數(shù)據(jù)庫文件名稱起個復雜的非常規(guī)的名字,并把他放在幾層目錄下。所謂“非常規(guī)”,打個比方:比如有個數(shù)據(jù)庫要保存的是有關書籍的信息,可不要把它命名為”book.mdb“的名字,起個怪怪的名稱,比如d34ksfslf.mdb,再把他放在如./kdslf/i44/studi/的幾層目錄下,這樣黑客要想通過猜的方式得到你的Access數(shù)據(jù)庫文件就難上加難了; (2)不要把數(shù)據(jù)庫名寫在程序中。有些人喜歡把DSN寫在程序中,比如: DBPath=Server.MapPath(“cmddb.mdb”) conn.Open“driver={MicrosoftAccessDriver(*.mdb)};dbq=”&DBPath 假如萬一給人拿到了源程序,你的Access數(shù)據(jù)庫的名字就一覽無余。因此建議你在ODBC里設置數(shù)據(jù)源,再在程序中這樣寫: conn.open“shujiyuan” (3)使用Access來為數(shù)據(jù)庫文件編碼及加密。首先在選取“工具”→“安全”→“加密/解密數(shù)據(jù)庫”,選取數(shù)據(jù)庫(如:employer.mdb),然后接確定,接著會出現(xiàn)“數(shù)據(jù)庫加密后另存為”的窗口,存為:employer1.mdb。接著“employer.mdb”就會被編碼,然后存為:employer1.mdb。 注意:以上的動作并不是對數(shù)據(jù)庫設置密碼,而只是對數(shù)據(jù)庫文件加以編碼,目的是為了防止他人使用別的工具來查看數(shù)據(jù)庫文件的內容。 接下來我們?yōu)閿?shù)據(jù)庫加密,首先以打開經過編碼了的“employer1.mdb”,在打開時,選擇“獨占”方式。然后選取功能表的“工具”→“安全”→“設置數(shù)據(jù)庫密碼”,接著輸入密碼即可。 為“employer1.mdb”設置密碼之后,接下來如果再使用Access數(shù)據(jù)庫文件時,則Access會先要求輸入密碼,驗證正確后才能夠啟動數(shù)據(jù)庫。 不過要在ASP程序中的Connection對象的open方法中增加PWD的參數(shù)即可,例如: 以下為引用的內容:
5.asp程序密碼驗證漏洞 漏洞描述: 很多網(wǎng)站把密碼放到數(shù)據(jù)庫中,在登陸驗證中用以下Sql,(以ASP為例) sql=“select*fromuserwhereusername=”&username&“andpass=”&pass&” 此時,您只要根據(jù)SQL構造一個特殊的用戶名和密碼,如:benor1=1 就可以進入本來你沒有特權的頁面。再來看看上面那個語句吧: sql=“select*fromuserwhereusername=”&username&“andpass=“&pass&” or是一個邏輯運算符,作用是在判斷兩個條件的時候,只要其中一個條件成立,那么等式將會成立。而在語言中,是以1來代表真的(成立)。那么在這行語句中,原語句的“and”驗證將不再繼續(xù),而因為“1=1”和“or”令語句返回為真值。 username=aaorusername<>aa pass=aaorpass<>aa 相應的在瀏覽器端的用戶名框內寫入:aaorusername<>aa口令框內寫入:aaorpass<>aa,注意這兩個字符串兩頭是沒有的。這樣就可以成功的騙過系統(tǒng)而進入。 后一種方法理論雖然如此,但要實踐是非常困難的,下面兩個條件都必須具備。 (1)你首先要能夠準確的知道系統(tǒng)在表中是用哪兩個字段存儲用戶名和口令的,只有這樣你才能準確的構造出這個進攻性的字符串。實際上這是很難猜中的。 (2)系統(tǒng)對你輸入的字符串不進行有效性檢查。 問題解決和建議:對輸入的內容驗證和“”號的處理。 6.IIS4或者IIS5中安裝有IndexServer服務會漏洞ASP源程序 問題描述: 在運行IIS4或者IIS5的IndexServer,輸入特殊的字符格式可以看到ASP源程序或者其它頁面的程序。甚至以及添打了最近關于參看源代碼的補丁程序的系統(tǒng),或者沒有.htw文件的系統(tǒng),一樣存在該問題。獲得ASP程序,甚至global.asp文件的源代碼,無疑對系統(tǒng)是一個非常重大的安全隱患。往往這些代碼中包含了用戶密碼和ID,以及數(shù)據(jù)庫的源路徑和名稱等等。這對于攻擊者收集系統(tǒng)信息,進行下一步的入侵都是非常重。 通過構建下面的特殊程序可以參看該程序源代碼: http://202.116.26.38/null.htwCiWebHitsFile=/default.asp&CiRestriction=none&CiHiliteTyp-e=Full 這樣只是返回一些HTML格式的文件代碼,但是當你添加%20到CiWebHitsFile的參數(shù)后面,如下: http://someurl/null.htw?CiWebHitsFile=/default.asp%20&CiRestriction=none&CiHiliteType=Full 這將獲得該程序的源代碼。(注意:/default.asp是以Web的根開始計算。如某站點的http://XXXXXX/welcome.asp) 那么對應就是: http://someurl/null.htwCiWebHitsFile=/XXXXXX/welcome.asp%20&CiRestriction=none&CiHiliteType=Full) 由于Null.htw文件并非真正的系統(tǒng)映射文件,所以只是一個儲存在系統(tǒng)內存中的虛擬文件。哪怕你已經從你的系統(tǒng)中刪除了所有的真實的.htw文件,但是由于對Null.htw文件的請求默認是由Webhits.dll來處理。所以,IIS仍然收到該漏洞的威脅。 問題解決或者建議: 如果該Webhits提供的功能是系統(tǒng)必須的,請下載相應的補丁程序。如果沒必要,請用IIS的MMC管理工具簡單移除“.htw”的映象文件。 7.NTIndexServer存在返回上級目錄的漏洞 問題描述: IndexSserver2.0是WinNT4.0OptionPack中附帶的一個軟件的工具,其中的功能已經被WinNT/2000中的IndexingServices所包含。當與IIS結合使用時,IndexServer和IndexingServices便可以在最初的環(huán)境來瀏覽WebSearch的結果,它將生成一個HTML文件,其中包含了查找后所返回頁面內容的簡短引用,并將其連接至所返回的頁面[即符合查詢內容的頁面],也就是超級連接。要做到這一點,它便需要支持由Webhits.dll-ISAPI程序處理的.htw文件類型。這個Dll允許在一個模版中使用“../”用做返回上級目錄的字符串。這樣,了解服務器文件結構的攻擊者便可以遠程的閱讀該機器上的任意文件了。 漏洞的利用: (1)您的系統(tǒng)中存在.htw文件 IndexServer提供的這種超級連接允許Web用戶獲得一個關于他搜尋結果的返回頁,這個頁面的名字是與CiWebHitsFile變量一起通過.htw文件的,Webhits.dll這個ISAPI程序將處理這個請求,對其進行超級連接并返回該頁面。因此用戶便可以控制通過.htw文件的CiWebHits變量,請求到任何所希望獲得的信息。另外存在的一個問題便是ASP或其他腳本文件的源代碼也可以利用該方法來獲得。 上面我們說過Webhits.dll后接上“../”便可以訪問到Web虛擬目錄外的文件,下面我們來看個例子: http://somerul/iissamples/issamples/oop/qfullhit.dll? iWebHitsFile=/../../winnt/system32/logfiles/w3svc1/ex000121.log&CiRestriction=none&Ci-HiliteType=Full 在瀏覽器中輸入該地址,便可以獲得該服務器上給定日期的Web日志文件。 以下為引用的內容:
調用一個Webhits.dllISAPI程序需要通過.htw文件來完成,如果您的系統(tǒng)中不存在.htw文件,雖然請求一個不存在的.htw文件將失敗,但是您的仍然存在可被利用的漏洞。其中的竅門便是利用Inetinfo.exe來調用Webhits.dll,這樣同樣能訪問到Web虛擬目錄外的文件。但我們需要通過制作一個的特殊的URL來完成這個文件必須是一個靜態(tài)的文件,如“.htm”,“.html”,“.txt”或者“.gif”,“.jpg”。這些文件將用作模版來被Webhits.dll打開。現(xiàn)在我們需要獲得Inetinfo.exe來利用Webhits.dll,唯一可以做到這點的便是請求一個.htw文件: http://url/default.htm.htwCiWebHitsFile=/../../winnt/system32/logfiles/w3svc1/ex000121.l-og&CiRestriction=none&CiHiliteType=Full 很明顯,這個請求肯定會失敗,因為系統(tǒng)上不存在這個文件。但請注意,我們現(xiàn)在已經調用到了Webhits.dll,我們只要在一個存在的文件資源后面[也就是在.htw前面]加上一串特殊的數(shù)字(%20s),[就是在例子中“default.htm”后面加上這個代表空格的特殊數(shù)字],這樣我們便可以欺騙過Web服務器從而達到我們的目的.由于在緩沖部分中.htw文件名字部分被刪除掉[由于%20s這個符號],所以,當請求傳送到Webhits.dll的時候,便可以成功的打開該文件,并返回給客戶端,而且過程中并不要求系統(tǒng)中真的存在.htw文件。 問題解決和建議: 微軟已經對該問題發(fā)放了補丁: 以下為引用的內容: IndexServer2.0: 本文出自:億恩科技【www.riomediacenter.com】 |