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