允許TRACE方法
漏洞描述
目標WEB服務器啟用了TRACE方法。TRACE方法是HTTP(超文本傳輸)協議定義的一種協議調試方法,該方法使得服務器原樣返回任何客戶端請求的內容(可能會附加路由中間的代理服務器的信息),由於該方法原樣返回客戶端提交的任意數據,因此,可用來進行跨站腳本(XSS)攻擊,這種攻擊方式又稱為跨站跟蹤攻擊(XST)。
風險等級
中、低
漏洞測試
使用TRACE方法請求服務器,查看響應是否正常並且返回請求的內容:
漏洞危害
- 惡意攻擊者可以通過TRACE Method返回的信息了解到網站前端的一些信息,如緩存服務器等,從而為下一步的攻擊提供便利。
- 惡意攻擊者可以通過TRACE Method進行XSS攻擊
- 即使網站對關鍵頁面啟用了HttpOnly頭標記和禁止腳本讀取cookie信息,那么通過TRACE Method惡意攻擊者還是可以繞過這個限制讀取到cookie信息。
修復建議
- 2.0.55以上版本的Apache服務器,可以在httpd.conf的尾部添加:
TraceEnable off
- 其它版本的Apache服務器可編輯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]
注:可以在httpd.conf里搜索VirtualHost確定虛擬主機的配置文件。