我們知道,通過在客戶端運行上傳到服務(wù)器的一段asp程序可以把服務(wù)器上的所有文件和文件夾列出來并可進(jìn)行任意操作,這一漏洞怎樣才能避免?那么多asp空間提供商他們是怎樣解決這個問題的呢?
熱心網(wǎng)友
一、ASP程序密碼驗證漏洞 漏洞描述: 很多網(wǎng)站把密碼放到數(shù)據(jù)庫中,在登陸驗證中用以下sql,(以asp為例) sql="select * from user where username='"&username&"'and pass='"& pass &'" 此時,您只要根據(jù)sql構(gòu)造一個特殊的用戶名和密碼,如:ben' or '1'='1 就可以進(jìn)入本來你沒有特權(quán)的頁面。再來看看上面那個語句吧: sql="select * from user where username='"&username&"'and pass='"& pass&'" 此時,您只要根據(jù)sql構(gòu)造一個特殊的用戶名和密碼,如:ben' or '1'='1 這樣,程序?qū)兂蛇@樣: sql="select*from username where username="&ben'or'1'=1&"and pass="&pass&" or 是一個邏輯運算符,作用是在判斷兩個條件的時候,只要其中一個條件成立,那么等式將會成立。而在語言中,是以1來代表真的(成 立)。那么在這行語句中,原語句的"and"驗證將不再繼續(xù),而因為"1=1"和"or"令語句返回為真值。。 另外我們也可以構(gòu)造以下的用戶名: username='aa' or username'aa' pass='aa' or pass'aa' 相應(yīng)的在瀏覽器端的用戶名框內(nèi)寫入:aa' or username'aa 口令框內(nèi)寫入:aa' or pass'aa,注意這兩個字符串兩頭是 沒有'的。這樣就可以成功的騙過系統(tǒng)而進(jìn)入。 后一種方法理論雖然如此,但要實踐是非常困難的,下面兩個條件都必須具備。 1。 你首先要能夠準(zhǔn)確的知道系統(tǒng)在表中是用哪兩個字段存儲用戶名和口令的,只有這樣你才能準(zhǔn)確的構(gòu)造出這個進(jìn)攻性的字符 串。實際上這是很難猜中的。 2。系統(tǒng)對你輸入的字符串不進(jìn)行有效性檢查。 問題解決和建議: 對輸入的內(nèi)容驗證和"'"號的處理。 7、IIS4或者IIS5中安裝有INDEX SERVER服務(wù)會漏洞ASP源程序 問題描述: 在運行IIS4或者IIS5的Index Server,輸入特殊的字符格式可以看到ASP源程序或者其它頁面的程序。甚至以及添打了最近關(guān) 于參看源代碼的補(bǔ)丁程序的系統(tǒng),或者沒有。htw文件的系統(tǒng),一樣存在該問題。獲得asp程序,甚至 a文件的源代碼,無 疑對系統(tǒng)是一個非常重大的安全隱患。往往這些代碼中包含了用戶密碼和ID,以及數(shù)據(jù)庫的源路徑和名稱等等。這對于攻擊者收集 系統(tǒng)信息,進(jìn)行下一步的入侵都是非常重要的。 通過構(gòu)建下面的特殊程序可以參看該程序源代碼: 這樣只是返回一些html格式的文件代碼,但是當(dāng)你添加%20到CiWebHitsFile的參數(shù)后面,如下: ?CiWebHitsFile=/p%20&CiRestriction=none&CiHiliteType=Full 這將獲得該程序的源代碼。 (注意:/ p是以web的根開始計算。如某站點的http:///welcome/ p 那么對應(yīng)就是: ?CiWebHitsFile=/welcome/p%20&CiRestriction=none&CiHiliteType=Full) 由于' w'文件并非真正的系統(tǒng)映射文件,所以只是一個儲存在系統(tǒng)內(nèi)存中的虛擬文件。哪怕你已經(jīng)從你的系統(tǒng)中刪除了 所有的真實的。htw文件,但是由于對 w文件的請求默認(rèn)是由webhits。dll來處理。所以,IIS仍然收到該漏洞的威脅。 問題解決或者建議: 如果該webhits提供的功能是系統(tǒng)必須的,請下載相應(yīng)的補(bǔ)丁程序。如果沒必要,請用IIS的MMC管理工具簡單移除。htw的映象 文件。 補(bǔ)丁程序如下: Index Server 2。0: Intel: Alpha: Indexing Services for Windows 2000: Intel: 二、漏洞描述: chinaasp的Activer server explorer可以很方便的對本地文件在線查看服務(wù)器上的目錄 在線查看文件的名稱、大小、類型、修改時間,在線編輯純文本文件,如。txt、。htm、。asp、。pl、。cgi等等,直接執(zhí)行服務(wù)器上的文件?! ctiver server explorer要求填寫相對路徑或者絕對路徑,但是假如:有一個攻擊者把Activer server explorer上傳到目標(biāo)服務(wù)器上的某個目錄,并且這個目錄支持ASP的話,那么他就可以通過Activer server explorer修改、執(zhí)行目標(biāo)服務(wù)器上的文件。這種情況可以發(fā)生在一個攻擊者擁有目標(biāo)NT服務(wù)器上的一個可寫目錄帳號,并且這個目錄又支持ASP。比如一些支持ASP的個人免費主頁服務(wù)器,把Activer server explorer先傳上你申請的免費主頁空間,再通過各種方法得到目標(biāo)服務(wù)器的路徑,(比如可通過漏洞:"請求不存在的擴(kuò)展名為idq或ida 文件,會暴露文件在服務(wù)器上的物理地址。")?;蛘咧苯釉谙鄬β窂缴咸?。",一般是默認(rèn)。這樣攻擊者就能任意修改,執(zhí)行目標(biāo)服務(wù)器上的文件,不管他對這個文件有無讀寫訪問權(quán)?! ∷阅切┨峁┯蠥SP服務(wù)的個人主頁或者其它服務(wù)的服務(wù)器,就要加倍小心這種攻擊了?! ÷┒唇鉀Q方法 其實Activer server explorer就是利用了上面講的漏洞 4 filesystemobject 組件篡改下載 fat 分區(qū)上的任何文件的漏洞?! ∧敲次覀?nèi)绾尾拍芟拗朴脩羰褂肍ileSystemObject對象呢?一種極端的做法是完全反注冊掉提供FileSystemObject對象的那個組件,也就是Scrrun。dll。具體的方法如下: 在MS-DOS狀態(tài)下面鍵入: Regsvr32 /u c:\windows\system\scrrun。dll (注意:在實際操作的時候要更改成為你本地的實際路徑) 但是這樣的話,就不能使用FileSystemObject對象了,有時利用FileSystemObject對象來管理文件是很方便,有什么辦法能兩全其美呢? 我們可以做到禁止他人非法使用FileSystemObject對象,但是我們自己仍然可以使用這個對象。 方法如下: 查找注冊表中 HKEY_CLASSES_ROOT\Scripting。FileSystemObject 鍵值 將其更改成為你想要的字符串(右鍵--"重命名"),比如更改成為 HKEY_CLASSES_ROOT\Scripting。FileSystemObject2 這樣,在ASP就必須這樣引用這個對象了: Set fso = CreateObject("Scripting。FileSystemObject2") 而不能使用: Set fso = CreateObject("Scripting。FileSystemObject") 如果你使用通常的方法來調(diào)用FileSystemObject對象就會無法使用了。 只要你不告訴別人這個更改過的對象名稱,其他人是無法使用FileSystemObject對象的。這樣,作為站點管理者我們就杜絕了他人非法使用FileSystemObject對象,而我們自己仍然可以使用這個對象來方便的實現(xiàn)網(wǎng)站在線管理等等功能了! 。