搜狐、163、雅虎等都是眾網(wǎng)民經(jīng)常光顧的大型門戶網(wǎng)站,這些網(wǎng)站提供的搜索引擎服務(wù)最受大家的青睞。可是恰恰是這些搜索引擎為黑客大開方便之門,許多黑客可以利用搜索引擎很容易地得到一個網(wǎng)站的數(shù)據(jù)庫,從而得到網(wǎng)站的管理賬號和密碼,并可以控制到整個網(wǎng)站的管理權(quán)。這樣一來,一些保存在數(shù)據(jù)庫里只有管理員才能看到的機(jī)密文件就被泄露出來。
其實通過搜索引擎入侵網(wǎng)站過程十分簡單,了解了入侵的方法,也就可以知道如何解決問題。那么防范的具體方法到底是怎么樣的呢?
首先從入侵者角度著手,分析一段代碼:
〈%connstr=“DBQ=“+server.mappath(“data/data.mdb”)+”;DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};”
set conn=server.createobject(“ADODB.CONNECTION”)
conn.open connstr %〉
以上是一段ASP的調(diào)用數(shù)據(jù)庫的代碼,其中“+server.mappath(“data/data.mdb”)+”起到設(shè)定數(shù)據(jù)庫位置的作用。從中不難看出這個網(wǎng)站的數(shù)據(jù)庫在dada目錄中的data.mdb文件中。
很多大型網(wǎng)站的搜索引擎中,有一個強大的功能,就是可以搜索未在本搜索引擎注冊過的網(wǎng)頁。利用這個功能,讓我們來搜索“server.mappath”這個字段。結(jié)果得到的結(jié)果是:
[無標(biāo)題文檔]
……=“+server.mappath(“../up/mucal/calp.mdb”)+”;DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};”
set conn=……
-(網(wǎng)址:略)
這樣,用戶就會得到很多帶有數(shù)據(jù)庫位置信息的搜索結(jié)果。但結(jié)果中會存在一些水分,而且范圍太大。如果用戶只想得到某一個網(wǎng)站的代碼該怎么辦呢?其實這個也很簡單,搜索引擎通常帶有多關(guān)鍵詞查詢功能,只要在所要搜索的兩個關(guān)鍵詞中間輸入一個“+”就可以了。比如用戶要查找有關(guān)于計算機(jī)世界網(wǎng)站中關(guān)于網(wǎng)絡(luò)安全的所有網(wǎng)頁,只要用戶在搜索引擎中鍵入“計算機(jī)世界+網(wǎng)絡(luò)安全”即可。同樣,用戶可以用這個方法來解決上面的那個問題。如果用戶要得到某一個程序的數(shù)據(jù)庫,比如這個程序的名字是《小牛江湖》,那么用戶在搜索引擎中搜索“小牛江湖+ server.mappath”就可以得到下面的結(jié)果:
[小牛江湖]
……=“+server.mappath(“../xajh/data/mycalf.mdb”)+;DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};”
set conn=……
-(網(wǎng)址:www.mycalf.com/xajh/index.asp)
此時,這個程序的數(shù)據(jù)庫位置便一目了然:/xajh/data/mycalf.mdb。接下來用戶把這個數(shù)據(jù)庫下載下來,用相應(yīng)的數(shù)據(jù)庫軟件打開,就可以得到其中的內(nèi)容。利用這個漏洞還可以得到mssql server的口令,甚至可以進(jìn)一步的去管理對方的整個服務(wù)器。
天下有矛就該有盾。這個被別人利用搜索引擎得到網(wǎng)站數(shù)據(jù)庫的問題可以用許多方法化解,最有效的方法之一就是隱藏這段語句,利用調(diào)用其他文件的方法來實現(xiàn)調(diào)用數(shù)據(jù)庫。
首先需要建立一個內(nèi)容為〈% connstr=“DBQ=“+server.mappath(“data/data.mdb”)+”;DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};”
set conn=server.createobject(“ADODB.CONNECTION”)
conn.open connstr %>的ASP文件。比如把這個文件命名為dbconn.asp。這樣只要在需要調(diào)用數(shù)據(jù)庫的ASP文件中加入!--#include file=“dbconn.asp”-->就可以實現(xiàn)數(shù)據(jù)庫的調(diào)用。如此,便實現(xiàn)了調(diào)用語段的隱藏,解決了被他人利用搜索引擎得到網(wǎng)站數(shù)據(jù)庫的問題。