1. 程式人生 > >修補網路安全漏洞之Apache HTTPD中禁用跟蹤

修補網路安全漏洞之Apache HTTPD中禁用跟蹤

一、背景介紹

      apache的httpd web伺服器預設開啟了http的trace與track方法,這些方法是存在安全風險的,它們會產生跨站點跟蹤問題。HTTP TRACK方法是微軟編寫的,與TRACE的功能基本相同,除了滲透測試人員,黑客,蠕蟲和漏洞掃描程式之外,它從未被使用過。

     XSS漏洞是一種低風險漏洞,是全球網路中最常見的漏洞之一。這個問題至少從1990年開始出現,是高頻率和高可見性的漏洞。

     HTTP TRACE要求Web伺服器將請求的內容回送給客戶端。完整請求(包括HTTP標頭,可包括cookie或身份驗證資料等敏感資訊)將在TRACE響應的實體主體中返回。該請求主要由開發人員用於測試和除錯HTTP應用程式,並且在大多數Web伺服器軟體中預設可用。

二、驗證跟蹤

   使用telnet工具進行漏洞驗證:

   開啟telnet應用程式並通過埠80(telnet <hostname> <port>)連線到目標網站web開放埠,微軟telnet客戶端,不回顯輸入的內容,在linux下使用telnet可以更加方便的進行驗證。

  連線成功後,鍵入以下內容:

trace驗證:

三、漏洞利用

     建立一個網頁,其中包含一些包含TRACE請求的JavaScript。然後,JavaScript可以利用訪問者瀏覽器中的任何跨域漏洞來收集任何網站的快取憑據,包括那些使用SSL的網站。

      更常見的方法是使用包含TRACE請求的JavaScript程式碼段並將其注入易受攻擊的Web應用程式。JavaScript將能夠傳送受害者的請求標頭,包括標記為“httpOnly”的cookie資料給攻擊者。“httpOnly”是新增到cookie的額外引數,它隱藏了來自指令碼的cookie,並且在大多數瀏覽器中都受支援; 但是,TRACE方法可用於繞過此保護。

四、關閉漏洞方法及步驟

1、方法一、通過TraceEnable開關實現

在httpd的配置檔案httpd.conf中加入一行:

TraceEnable=off

儲存配置檔案後退出重新啟動httpd

systemctl restart httpd

2、方法二、通過mod_rewrite模組實現

載入mod_rewrite模組建立一個mod_rewrite規則,該mod_rewrite.so模組預設位置在/usr/local/apache目錄下,首先在httpd.conf配置檔案中通過下面的語句載入該模組:

    LoadModule rewrite_module“/usr/local/apache/modules/mod_rewrite.so”

然後將以下內容新增到httpd.conf檔案中:

    RewriteEngine On 
    RewriteCond%{REQUEST_METHOD} ^(TRACE | TRACK)
    RewriteRule。* - [F]

預設情況下,不會跨虛擬伺服器繼承重寫配置。將RewriteEngine On新增到每個虛擬主機上。重新啟動apache服務。

systemctl restart httpd

五、再次重複第二步的方法對漏洞進行驗證,發現漏洞已經被修補成功