1.強制下載後綴名為ASP、ASA的數據庫文件
大多數的網管為了節省時間,網站上的文章系統、論壇等程序都是直接下載別人的源程序再經過部分修改後使用的。而現在很多人做的ASP源程序都已經將數據庫的後綴由原先的MDB改為了ASP或ASA。本來這是好事,但在這個信息極度膨脹的社會,老的方法所能維持的時間畢竟有限。對於ASP或ASA後綴的數據庫文件,黑客只要知道它們的存放位置,就能輕易地用迅雷這樣的下載軟件下載得到。圖1即筆者利用迅雷下載到的數據庫文件(注意數據庫的後綴為ASP)。
圖 1
2.致命符號——#
很多網管以為在數據庫前面加個#號就可以防止數據庫被下載。是啊,我當時也認為IE是無法下載帶有#號的文件的(IE會自動忽略#號後面的內容)。但是“成也蕭何,敗也蕭何”,我們忘記了網頁不僅能通過普通的方法訪問,而且用IE的編碼技術也能訪問到。
圖 2
3.破解Access加密數據庫易如反掌
有些網管喜歡對Access數據庫進行加密,以為這樣一來就算黑客得到了數據庫也需要密碼才能打開。但事實正好相反,由於Access的加密算法太脆弱,所以黑客只要隨便到網上找一個破解Access數據庫密碼的軟件,不用幾秒鐘就能得到密碼。這樣的軟件網上有很多,比如Accesskey。
4.瞬殺——數據暴庫技術
本身數據庫暴庫技術應該是屬於腳本漏洞的行列,之所以拿到這裡來說是因為它在數據庫下載漏洞中起到了舉足輕重的作用,如果仔細一點,讀者會發現上面的技巧都是假定知道數據庫名的情況下才能實施的。但很多時候我們根本不可能知道數據庫的名字,這時我們可能會感到很沮喪,覺得無法再進行下去,但數據庫暴庫技術的出現不僅可以一掃我們的沮喪情緒,也能讓我們真正地將前面的技術綜合起來利用。
很多人在用ASP寫數據連接文件時,總會這麼寫(conn.ASP):
……
db="data/rds_dbd32rfd213fg.mdb"
Set conn = Server.CreateObject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(db)
conn.Open connstr
function CloseDatabase
Conn.close
Set conn = Nothing
……
這段語句看上去覺得並沒什麼問題,而且數據庫的名字取得很怪,如果沒有數據庫暴庫技術我們能猜到這樣的數據庫名的幾率幾乎為零。但就是這麼簡短的語句卻隱藏著無限的信息。可以說網上絕大部分的程序都存在這個漏洞。我們只要將地址欄上在數據連接文件conn.ASP(一般為這個)前的/用%5c替代就可以暴到數據庫的位置,接下來的事情應該不需要我說了吧?大家只要開動腦筋沒有什麼事情是做不成的。