1. 程式人生 > >web伺服器啟用了不安全的HTTP方法

web伺服器啟用了不安全的HTTP方法

1、什麼是不安全的HTTP方法

開發人員、運維人員一般可能用於除錯伺服器,開啟了一些客戶端能夠直接讀寫伺服器端檔案的方法,例如:DELETE, PUT, COPY, MOVE, PROPFIND, PROPPATCH, SEARCH, LOCK, UNLOCK 等HTTP協議支援的方法。

2、安全風險

可能直接通過瀏覽器直接在Web伺服器上上傳、修改或刪除Web頁面、指令碼和檔案。

3、不安全的HTTP方法——原理

方法 說明
PUT 向指定的目錄上載檔案
DELETE 刪除指定的資源
COPY 將指定的資源複製到Destination訊息頭指定的位置
MOVE 將指定的資源移動到Destination訊息頭指定的位置
SEARCH 在一個目錄路徑中搜索資源
PROPFIND 獲取與指定資源有關的資訊,如作者、大小與內容型別
TRACE 在響應中返回伺服器收到的原始請求

伺服器端由於配置許可權不當,導致允許了客戶端傳送 DELETE, PUT, COPY, MOVE, PROPFIND, PROPPATCH, SEARCH, LOCK, UNLOCK等請求,並且解析請求進行操作檔案。如果伺服器必須要支援WebDAV,請務必禁用它或禁止不必要的HTTP方法。

4、測試步驟

使用CURL傳送OPTIONS請求,檢視響應頭中的Allow行

命令:curl -I -X OPTIONS http://payloads.online

➜  ~ curl -I -X OPTIONS http://10.211.55.16/
HTTP/1.1 200 OK
Date: Wed, 18 Apr 2018 02:17:47 GMT
Server: Microsoft-IIS/6.0
MS-Author-Via: DAV
Content-Length: 0
Accept-Ranges: none
DASL: <DAV:sql>
DAV: 1, 2
Public: OPTIONS, TRACE, GET, HEAD, DELETE, PUT, POST, COPY, MOVE, MKCOL, PROPFIND, PROPPATCH, LOCK, UNLOCK, SEARCH
Allow: OPTIONS, TRACE, GET, HEAD, DELETE, COPY, MOVE, PROPFIND, PROPPATCH, SEARCH, MKCOL, LOCK, UNLOCK
Cache-Control: private

若出現PUT、DELETE….等方法,則存在此風險。

5、修復方案

如tomcat,配置web.xml

<security-constraint>
<web-resource-collection>
<web-resource-name>fortune</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method>PUT</http-method>
<http-method>DELETE</http-method>
<http-method>HEAD</http-method>
<http-method>OPTIONS</http-method>
<http-method>TRACE</http-method>
</web-resource-collection>
<auth-constraint></auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>

重啟tomcat即可完成。

以上的程式碼新增到某一個應用中,也可以新增到tomcat的web.xml中,區別是新增到某一個應用只對某一個應用有效,如果新增到tomcat的web.xml中,

則對tomcat下所有的應用有效。

參考: