PUT/DELETE 为何成了 HTTP 协议中的不安全方法

要求:禁止使用不安全的 HTTP 方法,例如 PUT、DELETE 等。

缘由 1:Tomcat PUT 的上传漏洞,受影响的版本:Apache Tomcat 7.0.0 to 7.0.79

当 Tomcat 运行在 Windows 操作系统时,且启用了 HTTP PUT 请求方法(例如,将 readonly 初始化参数由默认值设置为 false),攻击者将有可能可通过精心构造的攻击请求数据包向服务器上传包含任意代码的 JSP 文件,JSP 文件中的恶意代码将能被服务器执行。导致服务器上的数据泄露或获取服务器权限。

利用条件

Apache Tomcat 默认开启 PUT 方法,org.apache.catalina.servlets.DefaultServlet 的 readonly 默认为 true,需要手动配置 readonly 为 false 才可以进行漏洞利用,而且默认没有在 Tomcat/conf/web.xml 里写。

缘由 2: Nginx 在开启 WebDAV 模式下,如果未配置认证模式,攻击者可以通过自由上传文件方法上传木马攻击服务器。

WebDAV 简介

WebDAV(Web-based Distributed Authoring and Versioning)是基于 HTTP/1.1 的增强协议。该协议使用户可以直接对 Web 服务器进行文件读写,并支持对文件的版本控制和写文件的加锁及解锁等操作。说白了,Nginx 就是开启 WebDAV 这个协议后,可以当做一个文件服务器,允许用户在远端向本地一样进行读写操作,当然也包括上传文件。

由于 Nginx 在设计时,或许是为了减轻小白的上手难度,在开启 WebDAV 时没有强制要求用户必须配置访问认证,这导致了某些 SB 用户在公网上开启了 WebDAV 而没有进行认证配置,从而导致了安全问题。而且由于 WebDAV 支持的协议有 PUT、DELETE、MKCOL、COPY 和 MOVE 等,其中 PUT、DELETE 与 HTTP 方法中的 PUT、DELETE 协议重合,便被安全部门给一刀切了。

WebDAV 安全风险

PUT:由于 PUT 方法自身不带验证机制,利用 PUT 方法可以向服务器上传文件,所以恶意攻击者可以上传木马等恶意文件。

DELETE:利用 DELETE 方法可以删除服务器上特定的资源文件,造成恶意攻击。

OPTIONS:将会造成服务器信息暴露,如中间件版本、支持的 HTTP 方法等。

TRACE:可以回显服务器收到的请求,主要用于测试或诊断,一般都会存在反射型跨站漏洞。

总结: PUT/DELETE 在 HTTP 协议中是否安全主要跟代码逻辑相关,并非是使用了这种方法就造成访问不安全,由于代码是运行在容器中,如果容器配置不当,会导致一些安全风险,安全工程师并不理解代码背后的逻辑,从而将 PUT、DELETE 给一刀切了。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值