容許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肯定虛擬主機的配置文件。cookie