ASP常見的安全漏洞

字號:

ASP的漏洞已經(jīng)算很少的了,想要找到數(shù)據(jù)庫的實際位置也不簡單,但這不表明黑客無孔可入,也正是這個觀點,一般的程序設(shè)計員常常忘記仔細的檢查是否有漏洞,所以才有可能導(dǎo)致網(wǎng)站資料被竊取的事件發(fā)生。今天我在這里和大家談?wù)凙SP常見的安全漏洞,以引起大家的重視及采取有效的防范措施。(注意,在本文中所介紹的方法請大家不要試用,請大家自覺遵守網(wǎng)絡(luò)準則,謝謝?。?BR>    Microsoft 的 Internet Information Server(IIS)提供利用 Active Server Pages(ASPs)而動態(tài)產(chǎn)生的網(wǎng)頁服務(wù)。一個ASP文件,就是一個在 HTML 網(wǎng)頁中,直接內(nèi)含程序代碼的文件。回詢(request)一個 ASP 文件,會促使 IIS 運行網(wǎng)頁中內(nèi)嵌的程序代碼,然后將其運行結(jié)果直接回送到瀏覽器上面。另一方面,靜態(tài)的 HTML 網(wǎng)頁,是按照其原來的樣子回傳到瀏覽器上面,沒有經(jīng)過任何的解析處理。在這里,IIS 是利用檔案的附加檔名來區(qū)別檔案的型態(tài)。一個附加檔名為 .htm 或 .html 的檔案是屬于靜態(tài)的 HTML 檔案,而附加檔名為 .asp 的檔案則為一個Active Server Pages 檔案。正因為如此,這一個Active Server Pages 就給別人留了后門。
    例如,通過利用這個簡單的參數(shù),就會顯示它所在的系統(tǒng)的時間。日期是自動從系統(tǒng)取得的,而以網(wǎng)頁的方式傳送出來。通過瀏覽器回詢這個網(wǎng)頁,我們不會看到剛剛的程序代碼,而是看到程序代碼的執(zhí)行結(jié)果,或許在所有網(wǎng)絡(luò)安全漏洞里面,最不受重視的就是未經(jīng)過解析的文件內(nèi)容或程序代碼無意中被顯示出來的安全漏洞。簡單的說,這些安全漏洞允許使用者從網(wǎng)頁服務(wù)器騙取動態(tài)網(wǎng)頁里面的程序代碼。
    以前最早人們利用 ASP安全漏洞的方式,就是利用 Windows NT 的數(shù)據(jù)傳輸串行的特性去存取檔案。你只要利用一個最簡單的參數(shù)(::$DATA)你就可以看到 ASP 的原始程序了。
    例如,以下的 URL:
    http://10.1.1.11/login.asp::$DATA
    你會取得一個叫做login.asp的檔案中未經(jīng)過解析的 ASP 程序代碼。因為這個 URL 字符串并沒有以 .asp 做結(jié)束,IIS 就沒有辦法決定這個被回詢的檔案是否為一個 ASP 檔。
    顯示的程序代碼如下: xxxx alert("請輸入您的 密碼!!") } else { document.f1.action="checkuser.asp" document.f1.submit() } } xxxx
    注:checkuser.asp 就是檢查帳號密碼的東西!
    當然了,并非所有的程序代碼上安全漏洞都歸咎于網(wǎng)頁服務(wù)器軟件。例如,如果你采用典型安裝 Widows NT Option Pack 4.0的話,安裝程序會將Exploration Air 安裝上去,這是提供給 ASP 程序設(shè)計員當范例用的網(wǎng)站應(yīng)用軟件程序。其中Widows NT Option Pack 4.0的 showcode.asp 檔案會將 Exploration Air 范例網(wǎng)站的原始程序代碼整齊的顯示出來。由于在程序里面并沒有嚴格的權(quán)限檢驗程序,一個有經(jīng)驗的訪客就可以猜到文件名稱以及它們的目錄路徑,他就可以利用 showcode.asp 將任何在檔案系統(tǒng)里面的檔案讀取。
    這個黑客只要在他的瀏覽器里面用URL字符串,指定正確的文件名稱以及目錄路徑當作 showcode.asp 的參數(shù)就可以了。例如,以下的 URL 可以讓黑客看到在10.11.11.15服務(wù)器上default.asp 里面的原始程序代碼: http://10.11.11.15/msadc/Samples/SELECTOR/showcode.asp?source=/msadc/Samples/../../../../../inetpub/wwwroot/default.asp
    msadc/Samples/SELECTOR/showcode.asp 這是一個 FSO 的范例程序,主要用意在教您如何使用 FSO 去 View ASP 的 Source ,程序中雖然有限定只能 View /msadc/samples/ 下的檔案。但是利用 MapPath 中回到上一層的語法來加以*。(你可用一連串的 "../" 來跳到檔案系統(tǒng)的最頂層,然后將在其它目錄的檔案竊取出來,當然要先經(jīng)過存取權(quán)這一關(guān)才可以。)
    架設(shè)有服務(wù)器的朋友可以試試看這個 Link ,試試能不能看到你根目錄底下的檔案 ,如果可以,那你就該注意了!
    而在IIS 5.0 的安全漏洞,其中之一就是利用 .htr 控制模塊(handler)解析檔案能力的安全漏洞了。IIS 的 Internet Service Manager 使用 ism.dll 來處理 .htr 檔案。IIS 本身則使用 asp.dll 來處理 ASP 檔案。利用 .htr 的安全漏洞,黑客可以將任何檔案(包括 .asp 檔,.asa 檔等等)用 ism.dll 處理,而非用 asp.dll 處理。而因為 ism.dll 并非被設(shè)計用來處理 ASP 的 tag,它便直接把原始程序代碼顯示出來。要想利用這個安全漏洞,遠程的黑客們只要在他們的 URL字符串的尾巴加上 +.htr。例如,要在10.11.11.15上看 default.asp 的原始程序代碼,一個黑客可以用下面的 URL: http://10.11.11.15/default.asp+.htr
    這時你只要在瀏覽器的菜單欄,選擇“查看/源文件”就可以看到 ASP的程序,一切都很簡單,防火墻擋不住這個。不過,和showcode.asp不一樣的是,這個漏洞不能讓黑客們直接在網(wǎng)站服務(wù)器文件根目錄之外竊取出指定的檔案。另外,如果 ASP 文檔有 的卷標,這個方法運作起來也不會很順利。在碰到 % 符號時,輸出結(jié)果會被終止掉。因此,利用這個漏洞所能竊取的一般是使用 SCRIPT RUNAT="SERVER" ... /SCRIPT 卷標的 ASP 文件。