最近掃描項目所在的伺服器發現一個漏洞,名稱叫“遠端WWW服務支援TRACE請求”,提供的解決辦法沒多大用處,隻說是“管理者應禁用WWW服務對TRACE請求的支援”,但具體怎樣做不太清楚,上網搜了一下,利用apache伺服器的rewrite功能,對TRACE請求進行攔截,以下是解決辦法。
較長的描述 | 遠端WWW服務支援TRACE請求。RFC 2616介紹了TRACE請求,該請求典型地用于測試HTTP協定實作。攻擊者利用TRACE請求,結合其它浏覽器端漏洞,有可能進行跨站腳本攻擊,擷取敏感資訊,比如cookie中的認證資訊,這些敏感資訊将被用于其它類型的攻擊。 |
解決辦法 | 管理者應禁用WWW服務對TRACE請求的支援。 IIS URLScan Apache Source Code Modification Mod_Rewrite Module RewriteEngine on RewriteCond {REQUEST_METHOD} ^(TRACE|TRACK) RewriteRule .* - [F] |
步驟:
1、停止Apache服務(以root權限登入)
# cd /usr/IBM/HTTPServer/bin
# ./apachectl stop
[warn] VirtualHost 192.168.0.1:80 overlaps with VirtualHost
192.168.0.1:80, the first has precedence, perhaps you need a
NameVirtualHost directive。
修改配置檔案:
解決該問題的方法十分簡單,隻需通過一條簡單的配置檔案指令即可開啟基于域名的虛拟主機了。我的VPS使用的是CentOS 6.0,在預設的Apache配置檔案中的虛拟主機配置節點上面會包含如下基于域名的虛拟主機配置檔案。如下所示。
#
# Use name-based virtual hosting.
#
# NameVirtualHost :80
#
# NOTE: NameVirtualHost cannot be used without a port specifier
# (e.g. :80) if mod_ssl is being used, due to the nature of the
# SSL protocol.
#
注意NameVirtualHost :80這一段,預設情況下是被注釋掉的,我們仍然拿上面的那個配置作為例子。假如我們希望将xxx.com和yyy.com同時指向192.168.0.1這個IP位址的話,就需要修改該配置檔案。修改好的該片段如下所示。
#
# Use name-based virtual hosting.
#
NameVirtualHost 192.168.0.1:80
#
# NOTE: NameVirtualHost cannot be used without a port specifier
# (e.g. :80) if mod_ssl is being used, due to the nature of the
# SSL protocol.
#
這樣就在此IP上開啟了基于域名的虛拟主機。需要注意的是,基于域名的虛拟主機必須指定端口号,如:80等,否則無法正常通路。
2、修改httpd.conf檔案
# cd /usr/IBM/HTTPServer/conf
編輯httpd.conf檔案
# 首先,激活rewrite子產品(去掉符号#)
LoadModule rewrite_module modules/mod_rewrite.so
# 啟用Rewrite引擎
RewriteEngine On
# 對Request中的Method字段進行比對:^TRACE 即以TRACE字元串開頭
RewriteCond %{REQUEST_METHOD} ^TRACE
# 定義規則:對于所有格式的來源請求,均傳回[F]-Forbidden響應
RewriteRule .* - [F]
對于2.0.55以上版本的apache伺服器,有一種更簡單的辦法:
TraceEnable off
3、啟動Apache服務(以root權限登入)
# cd /usr/IBM/HTTPServer/bin
# ./apachectl start
測試:ping IP
tracert Ip
vi 到檔案末尾指令 :$
vi到檔案頭 :1