mdb數據庫是沒有安全防范的,只要入侵者猜測或者掃描到mdb數據庫的路徑後就可以使用下載工具輕松將其下載到本地硬盤,再結合暴力破解工具或一些超級破解工具可以輕松的查看裡頭的數據庫文件內容,企業的隱私和員工的密碼從此不在安全。難道我們就沒有辦法加強mdb數據庫的安全嗎?難道即便我們只有一點點數據資料也要麻煩SQL Server或者Oracle嗎?答案是否定的,本篇文章筆者將告訴大家打造安全的mdb數據庫文件的獨門秘訣。
一、危機起因:
一般情況下基於ASP構建的網站程序和論壇的數據庫的擴展名默認為mdb,這是很危險的。只要猜測出了數據庫文件的位置,然後在浏覽器的地址欄裡面輸入它的URL,就可以輕易地下載文件。就算我們對數據庫加上了密碼並且裡面管理員的密碼也被MD5加密,被下載到本地以後也很容易被破解。畢竟目前MD5已經可以通過暴力來破解了。因此只要數據庫被下載了,那數據庫就沒有絲毫安全性可言了。
二、常用的補救方法:
目前常用的數據庫文件防止被非法下載的方法有以下幾種。
(1)把數據庫的名字進行修改,並且放到很深的目錄下面。比如把數據庫名修改為Sj6gf5.mdb,放到多級目錄中,這樣攻擊者想簡單地猜測數據庫的位置就很困難了。當然這樣做的弊端就是如果ASP代碼文件洩漏,那無論隱藏多深都沒有用了。
(2)把數據庫的擴展名修改為ASP或者ASA等不影響數據查詢的名字。但是有時候修改為ASP或者ASA以後仍然可以被下載,比如我們將其修改為ASP以後,直接在IE的地址欄裡輸入網絡地址,雖然沒有提示下載但是卻在浏覽器裡出現了一大片亂碼。如果使用FlashGet或影音傳送帶等專業的下載工具就可以直接把數據庫文件下載下來。不過這種方法有一定的盲目性,畢竟入侵者不能確保該文件就一定是MDB數據庫文件修改擴展名的文件,但是對於那些有充足精力和時間的入侵者來說,可以將所有文件下載並全部修改擴展名來猜測。該方法的防范級別將大大降低。
三、筆者的旁門左道:
在筆者的測試過程中就遇到了ASP和ASA文件也會被下載的問題,所以經過研究發現了以下的方法。
如果在給數據庫的文件命名的時候,將數據庫文件命名為“#admin.asa”則可以完全避免用IE下載,但是如果破壞者猜測到了數據庫的路徑,用FlashGet還是可以成功地下載下來,然後把下載後的文件改名為“admin.mdb”,則網站秘密就將暴露。所以我們需要找到一種FlashGet無法下載的方法,但是如何才能讓他無法下載呢?大概是因為以前受到unicode漏洞攻擊的緣故,網站在處理包含unicode碼的鏈接的時候將會不予處理。所以我們可以利用unicode編碼(比如可以利用“%3C ”代替“<”等),來達到我們的目的。而FlashGet在處理包含unicode碼的鏈接的時候卻“自作聰明”地把unicode編碼做了對應的處理,比如自動把“%29”這一段unicode編碼形式的字符轉化成了“(”,所以你向FlashGet提交一個 http://127.0.0.1/xweb/data/%29xadminsxx.mdb的下載鏈接,它卻解釋成了http://127.0.0.1/xweb/data/(xadminsxx.mdb,看看我們上面的網址的地方和下面的重命名的地方是不同的,FlashGet把“%29xadminsxx.mdb”解釋為了“(xadminsxx.mdb”,當我們單擊“確定”按鈕進行下載的時候,它就去尋找一個名為“(xadminsxx.mdb”的文件。也就是說FlashGet給我們引入了歧途,它當然找不到,所以提示失敗了。
不過如果提示下載失敗,攻擊者肯定要想采取其他的攻擊方法。由此我們可以采用另一個防范的方法,既然FlashGet去找那個名為“(xadminsxx.mdb”的文件了,我們可以給它准備一個,我們給它做一個仿真的數據庫名為“(xadminsxx.mdb”,這樣當入侵者想下載文件的時候的的確確下載了一個數據庫回去,只不過這個數據庫文件是虛假的或者是空的,在他們暗自竊喜的時候,實際上最終的勝利是屬於我們的。
總結:
通過本次旁門左道保護MDB數據庫文件方法的介紹,我們可以明確兩點安全措施,一是迷惑法,也就是將黑客想得到的東西進行改變,例如改變MDB文件的文件名或者擴展名;二是替代法,也就是將黑客想得到的東西隱藏,用一個沒有實際意義的東西替代,這樣即使黑客成功入侵,拿到的也是一個虛假的信息,他們還會以為入侵成功而停止接下來的攻擊。