參考網址:http://www.cnblogs.com/tdcqma/p/5355801.html
安全風險:
可能會在Web 伺服器上上載、修改或删除Web 頁面、腳本和檔案。
可能原因:
Web 伺服器或應用程式伺服器是以不安全的方式配置的。
修訂建議:
如果伺服器不需要支援WebDAV,請務必禁用它,或禁止不必要的HTTP 方法。
方法簡介:
除标準的GET和POST方法外,HTTP請求還使用其他各種方法。許多這類方法主要用于完成不常見與特殊的任務。如果低權限使用者可以通路這些方法,他們就能夠以此向應用程式實施有效攻擊。以下是一些值得注意的方法:
PUT | 向指定的目錄上載檔案 |
DELETE | 删除指定的資源 |
COPY | 将指定的資源複制到Destination消息頭指定的位置 |
MOVE | 将指定的資源移動到Destination消息頭指定的位置 |
SEARCH | 在一個目錄路徑中搜尋資源 |
PROPFIND | 擷取與指定資源有關的資訊,如作者、大小與内容類型 |
TRACE | 在響應中傳回伺服器收到的原始請求 |
其中幾個方法屬于HTTP協定的WebDAV(Web-based Distributed Authoring and Versioning)擴充。
滲透測試步驟:
使用OPTIONS方法列出伺服器使用的HTTP方法。注意,不同目錄中激活的方法可能各不相同。
許多時候,被告知一些方法有效,但實際上它們并不能使用。有時,即使OPTIONS請求傳回的響應中沒有列出某個方法,但該方法仍然可用。
手動測試每一個方法,确認其是否可用。
使用curl測試:
curl -v -X OPTIONS http://www.example.com/test/
檢視響應的 Allow: GET, HEAD, POST, PUT, DELETE, OPTIONS
curl -v -T test.html http://www.example.com/test/test.html
看是否能上載來判斷攻擊是否生效。
找一個存在的頁面,如test2.html
curl -X DELETE http://www.example.com/test/test2.html
如果删除成功,則攻擊有效。(測試時好像并不能真正删除檔案,指令可以執行但是傳回403禁止頁面資訊,不知道是不是tomcat問題,如果添加下面配置,則直接禁止不會有傳回頁面)
解決方案:
如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>