版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/bobozai86/article/details/82708449
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、修复方案
扫描二维码关注公众号,回复:
3584494 查看本文章
如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下所有的应用有效。
参考: