web伺服器啟用了不安全的HTTP方法
阿新 • • 發佈:2018-12-09
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下所有的應用有效。
參考: