當訪問IIS網站上的靜態HTML文件時,比如index.htm,IIS響應中會包含一個Content-Location文件頭。如果IIS配置不當,5自學網,Content-Location文件頭中將包含服務器的IP地址內容,這樣就導致了隱藏在NAT防火牆或者代理服務器後面的內部網IP地址信息的洩漏,給攻擊者有漏可乘。 下面我就介紹2種解決辦法,實現將IP地址信息替換為域名信息的目的,幫助系統管理員消除內部網的IP地址洩漏隱患。 什麼是IIS對頁面文件的響應信息 當我們使用浏覽器訪問IIS網站Web服務器上的頁面內容時,IIS將返回給用戶一個完整的響應信息。簡單情況下,我們可以認為這個響應信息包含2部分內容: 1、系統信息: 諸如訪問狀態、服務器信息、文件類型、正文長度等內容。 2、正文信息: 通常情況下就是我們在浏覽器中看到的頁面內容,也就是在浏覽器中可以查看到的頁面源代碼內容。 當我們使用高級語言中的相關Internet控件訪問一個頁面內容時,比如使用VB的InternetControl控件來編寫自己的浏覽器或者下載程序,最終就會得到包含上述2部分內容的完整響應信息。 首先我們來看看一個例子,它顯示了默認安裝情況下IIS對HTML文件的響應信息: HTTP/1.1 200OK Server:Microsoft-IIS/5.0 Content-Location: Date:Wed, 31Oct200104:19:40GMT Content-Type:text/html Accept-Ranges:bytes Last-Modified:Fri, 12Oct200107:48:06GMT ETag:"03f7e3af252c11:9a2 " Content-Length:7141 上面響應信息的第3行內容包含了內部網的IP地址信息,這是我們不希望的。我們希望IIS響應如下的內容: HTTP/1.1 200OK Server:Microsoft-IIS/5.0 Content-Location: Date:Wed, 31Oct200104:19:40GMT Content-Type:text/html Accept-Ranges:bytes Last-Modified:Fri, 12Oct200107:48:06GMT ETag:"03f7e3af252c11:9a2 " Content-Length:7141 也就是說,將第3行內容中的IP地址信息替換為域名信息。下面來看看解決辦法。 解決方法一:執行腳本程序Adsutil.vbs 通過修改IIS數據庫中的一個數值,就可以達到將Content-Location文件頭中的IP地址信息轉換為域名信息的目的。 第一種方法是通過執行一個VBS腳本程序完成IIS數據庫的相關修改工作,這個腳本程序叫做Adsutil.vbs,它隨IIS安裝後生成。 注意:由於實際的應用環境不同,微軟公司沒有擔保這個軟件的使用安全性。所以,我建議在執行這個腳本程序前,做好服務器上的重要數據備份。 對於IIS4.0服務器,執行步驟如下: 1、點擊“開始/運行”,輸入“cmd”,點擊“確定”,進入命令行狀態窗口。 2、切換到IIS4.0系統程序安裝目錄,一般是c:\winnt\system32\inetsrv\adminsamples 。 3、執行以下命令,修改IIS數據庫相關數值,設置Content-Location文件頭使用域名信息: adsutilsetw3svc/UseHostNameTrue 4、執行以下命令,關閉Internet服務程序:netstopiisadmin/y 5、執行以下命令,重新啟動相關Internet應用程序:netstartw3svc 注意:在執行完第4步後,要觀察一下都有哪些Internet應用程序被停止,然後在第5步中依次重新啟動它們。 對於IIS5.0服務器,執行步驟如下: 1、點擊“開始/運行”,輸入“cmd”,5自學網,點擊“確定”,進入命令行狀態窗口。 2、切換到IIS5.0系統程序安裝目錄,一般是c:\inetpub\adminscripts 。 3、執行以下命令,修改IIS數據庫相關數值,設置Content-Location文件頭使用域名信息:adsutilsetw3svc/UseHostNameTrue 4、執行以下命令,關閉Internet服務程序:netstopiisadmin/y 5、執行以下命令,重新啟動相關Internet應用程序:netstartw3svc 同樣請注意:在執行完第4步後,要觀察一下都有哪些Internet應用程序被停止,然後在第5步中依次重新啟動它們。 解決方法二:將.htm文件改名為.ASP文件,並定制文件頭信息 我要介紹的第二種方法采取了一種間接處理的方式: 1、首先將.HTM文件改名為.ASP文件。 2、因為IIS對ASP文件的響應中,並不包含Content-Location'>文件頭內容,所以接著要在IIS管理器中為之創建一個定制文件頭,以返回特殊的Content-Location文件頭內容。 下面我們來看看具體的操作步驟: 1、將靜態頁面文件(比如 .htm,.html)改名為.asp文件。注意,經過這樣的文件改名後,當訪問原來的.htm文件時,將啟動ASP引擎,從性能上來看,是稍稍有些降低的。 2、啟動Internet服務管理器 3、雙擊“Internet信息服務”,擴展下屬內容 4、點擊要處理服務器名字左邊的+號,擴展下屬內容 5、右鍵點擊“默認Web站點”,選擇“屬性” 6、點擊“頭”選項卡 7、在“自定義頭”部分,點擊“添加” 8、在“自定義頭名稱”處輸入“Content-Location”,在“自定義頭值”處輸入你期望的域名信息,比如“ttp://www.mywebsite.com”: 9、依次點擊“確定”,完成全部修改工作