什么是mdb數(shù)據(jù)庫呢?凡是有點(diǎn)制作網(wǎng)站經(jīng)驗(yàn)的網(wǎng)絡(luò)管理員都知道,目前使用“IIS+ASP+ACCESS”這套組合方式建立網(wǎng)站是最流行的,大多數(shù)中小型Internet網(wǎng)站都使用該“套餐”,但隨之而來的安全問題也日益顯著。其中最容易被攻擊者利用的莫過于mdb數(shù)據(jù)庫被非法下載了。
什么是mdb數(shù)據(jù)庫呢?凡是有點(diǎn)制作網(wǎng)站經(jīng)驗(yàn)的網(wǎng)絡(luò)管理員都知道,目前使用“IIS+ASP+ACCESS”這套組合方式建立網(wǎng)站是最流行的,大多數(shù)中小型Internet網(wǎng)站都使用該“套餐”,但隨之而來的安全問題也日益顯著。其中最容易被攻擊者利用的莫過于mdb數(shù)據(jù)庫被非法下載了。
mdb數(shù)據(jù)庫是沒有安全防范的,只要入侵者猜測或者掃描到mdb數(shù)據(jù)庫的路徑后就可以使用下載工具輕松將其下載到本地硬盤,再結(jié)合暴力破解工具或一些超級破解工具可以輕松的查看里頭的數(shù)據(jù)庫文件內(nèi)容,企業(yè)的隱私和員工的密碼從此不在安全。難道我們就沒有辦法加強(qiáng)mdb數(shù)據(jù)庫的安全嗎?難道即便我們只有一點(diǎn)點(diǎn)數(shù)據(jù)資料也要麻煩sqlserver或者oracle嗎?答案是否定的,本篇文章筆者將告訴大家打造安全的mdb數(shù)據(jù)庫文件的獨(dú)門秘訣。
一、危機(jī)起因:
一般情況下基于ASP構(gòu)建的網(wǎng)站程序和論壇的數(shù)據(jù)庫的擴(kuò)展名默認(rèn)為mdb,這是很危險(xiǎn)的。只要猜測出了數(shù)據(jù)庫文件的位置,然后在瀏覽器的地址欄里面輸入它的URL,就可以輕易地下載文件。就算我們對數(shù)據(jù)庫加上了密碼并且里面管理員的密碼也被MD5加密,被下載到本地以后也很容易被破解。畢竟目前MD5已經(jīng)可以通過暴力來破解了。因此只要數(shù)據(jù)庫被下載了,那數(shù)據(jù)庫就沒有絲毫安全性可言了。
二、常用的補(bǔ)救方法:
目前常用的數(shù)據(jù)庫文件防止被非法下載的方法有以下幾種。
(1)把數(shù)據(jù)庫的名字進(jìn)行修改,并且放到很深的目錄下面。比如把數(shù)據(jù)庫名修改為Sj6gf5.mdb,放到多級目錄中,這樣攻擊者想簡單地猜測數(shù)據(jù)庫的位置就很困難了。當(dāng)然這樣做的弊端就是如果ASP代碼文件泄漏,那無論隱藏多深都沒有用了。
(2)把數(shù)據(jù)庫的擴(kuò)展名修改為ASP或者ASA等不影響數(shù)據(jù)查詢的名字。但是有時(shí)候修改為ASP或者ASA以后仍然可以被下載,比如我們將其修改為ASP以后,直接在IE的地址欄里輸入網(wǎng)絡(luò)地址,雖然沒有提示下載但是卻在瀏覽器里出現(xiàn)了一大片亂碼。如果使用FlashGet或影音傳送帶等專業(yè)的下載工具就可以直接把數(shù)據(jù)庫文件下載下來。不過這種方法有一定的盲目性,畢竟入侵者不能確保該文件就一定是MDB數(shù)據(jù)庫文件修改擴(kuò)展名的文件,但是對于那些有充足精力和時(shí)間的入侵者來說,可以將所有文件下載并全部修改擴(kuò)展名來猜測。該方法的防范級別將大大降低。
三、筆者的旁門左道:
在筆者的測試過程中就遇到了ASP和ASA文件也會被下載的問題,所以經(jīng)過研究發(fā)現(xiàn)了以下的方法。
如果在給數(shù)據(jù)庫的文件命名的時(shí)候,將數(shù)據(jù)庫文件命名為“#admin.asa”則可以完全避免用IE下載,但是如果破壞者猜測到了數(shù)據(jù)庫的路徑,用FlashGet還是可以成功地下載下來,然后把下載后的文件改名為“admin.mdb”,則網(wǎng)站秘密就將暴露。所以我們需要找到一種FlashGet無法下載的方法,但是如何才能讓他無法下載呢?大概是因?yàn)橐郧笆艿絬nicode漏洞攻擊的緣故,網(wǎng)站在處理包含unicode碼的鏈接的時(shí)候?qū)挥杼幚怼K晕覀兛梢岳胾nicode編碼(比如可以利用“%3C”代替“<”等),來達(dá)到我們的目的。而FlashGet在處理包含unicode碼的鏈接的時(shí)候卻“自作聰明”地把unicode編碼做了對應(yīng)的處理,比如自動把“%29”這一段unicode編碼形式的字符轉(zhuǎn)化成了“(”,所以你向FlashGet提交一個(gè)http://127.0.0.1/xweb/data/%29xadminsxx.mdb的下載鏈接,它卻解釋成了http://127.0.0.1/xweb/data/(xadminsxx.mdb,看看我們上面的網(wǎng)址的地方和下面的重命名的地方是不同的,F(xiàn)lashGet把“%29xadminsxx.mdb”解釋為了“(xadminsxx.mdb”,當(dāng)我們單擊“確定”按鈕進(jìn)行下載的時(shí)候,它就去尋找一個(gè)名為“(xadminsxx.mdb”的文件。也就是說FlashGet給我們引入了歧途,它當(dāng)然找不到,所以提示失敗了。
不過如果提示下載失敗,攻擊者肯定要想采取其他的攻擊方法。由此我們可以采用另一個(gè)防范的方法,既然FlashGet去找那個(gè)名為“(xadminsxx.mdb”的文件了,我們可以給它準(zhǔn)備一個(gè),我們給它做一個(gè)仿真的數(shù)據(jù)庫名為“(xadminsxx.mdb”,這樣當(dāng)入侵者想下載文件的時(shí)候的的確確下載了一個(gè)數(shù)據(jù)庫回去,只不過這個(gè)數(shù)據(jù)庫文件是虛假的或者是空的,在他們暗自竊喜的時(shí)候,實(shí)際上最終的勝利是屬于我們的。
總結(jié):
通過本次旁門左道保護(hù)MDB數(shù)據(jù)庫文件方法的介紹,我們可以明確兩點(diǎn)安全措施,一是迷惑法,也就是將黑客想得到的東西進(jìn)行改變,例如改變MDB文件的文件名或者擴(kuò)展名;二是替代法,也就是將黑客想得到的東西隱藏,用一個(gè)沒有實(shí)際意義的東西替代,這樣即使黑客成功入侵,拿到的也是一個(gè)虛假的信息,他們還會以為入侵成功而停止接下來的攻擊。
更多信息請查看IT技術(shù)專欄