文章总结: 本文详解了服务器启用不安全HTTP方法如DELETE、PUT等带来的中风险漏洞,攻击者可借此篡改或删除文件。文章指出风险源于WebDAV功能,建议禁用该功能或通过Java过滤器仅允许GET和POST请求,并提供了具体的Filter代码与Tomcat配置步骤,以加固服务器安全防线。 综合评分: 92 文章分类: Web安全,应用安全,漏洞分析,解决方案,安全开发
服务器开门揖盗?禁用不安全 HTTP 方法刻不容缓!——Web 应用安全实战(PART 6)
原创
耶度
野猪与安全
2025年12月29日 10:01 广东
各位开发同学,咱们的 Web 安全实战系列更新到第六篇啦!上一篇我们重点拆解了后端的两个“泄密型”漏洞——发现数据库错误模式和应用程序错误,明确了“严格校验输入”和“屏蔽敏感错误”两大核心防御思路。今天,我们把目光转向服务器的“大门”——HTTP 协议层面,聊聊一个极易被忽视的基础漏洞:启用了不安全的 HTTP 方法。
很多时候,我们加固了登录、防御了注入、屏蔽了错误,却忘了给服务器的“访问规则”上锁。服务器默认开放的 DELETE、COPY、MOVE 等 HTTP 方法,就像没锁的窗户,一旦被黑客利用,就能直接修改、删除服务器上的文件,后果不堪设想。话不多说,直接上干货!
启用了不安全的 HTTP 方法——服务器的“未锁窗户”
中风险漏洞
1. 漏洞描述:Allow 头暴露危险方法,WebDAV 成攻击突破口
这个漏洞的核心很明确:当我们通过浏览器或工具查看服务器的响应头时,若 Allow 头中显示 DELETE、SEARCH、COPY、MOVE 等危险 HTTP 方法被允许,就说明服务器启用了 WebDAV(Web 分布式创作和版本管理)功能,且开放了不必要的 HTTP 方法。这相当于给黑客递了一把“万能钥匙”,让他们有机会利用这些方法对服务器发起攻击。
简单解释下:HTTP 方法不只有我们常用的 GET(获取数据)和POST(提交数据),还有 DELETE(删除资源)、PUT(上传/修改资源)、COPY(复制资源)等多种方法。WebDAV 原本是为了方便开发者远程管理服务器文件而设计的,但如果随意开放,就会变成黑客攻击的突破口。
安全级别:
中风险!仅在 Tomcat 服务器中存在,但攻击成功后会直接威胁服务器文件安全;且 WebDAV 历史上曾出现过多个特权提升漏洞,风险不容小觑。
2. 核心风险:服务器文件被随意篡改、删除
黑客利用这些不安全的 HTTP 方法,能轻松做到这些事:
- 通过 PUT 方法向服务器上传恶意脚本(如木马文件),进而控制整个服务器;
- 通过 DELETE 方法删除服务器上的核心文件(如首页 HTML、业务脚本),导致网站瘫痪;
- 通过 COPY、MOVE 方法篡改网站内容(如替换正常页面为钓鱼页面),诱导用户输入敏感信息;
- 更严重的是,结合 WebDAV 的历史漏洞,黑客可能实现特权提升,执行更多恶意操作。
3. 解决方案:禁用 WebDAV 或拦截危险 HTTP 方法
防御的核心思路是“按需开放,多余即关闭”,具体有两个关键方案:
- 若服务器不需要支持 WebDAV(绝大多数业务系统都不需要),请直接禁用 WebDAV 功能,从根源上杜绝此类风险;
- 若因特殊需求必须启用 WebDAV,需严格限制 HTTP 方法,仅保留业务必需的方法(优先只保留 GET 和 POST),禁止 DELETE、COPY、MOVE 等所有危险方法。
4. 技术实现:添加过滤器,只允许 GET 和 POST 方法访问
最直接、可落地的方案是添加自定义过滤器,拦截所有非 GET 和 POST 的 HTTP 方法,直接返回 403 禁止访问。具体实现步骤(以 Java Web+Tomcat为例)如下:
(1)编写 HTTP 方法过滤器(核心代码)
创建 HttpMethodFilter 类,核心逻辑是校验请求方法,仅放行 GET 和 POST:
public class HttpMethodFilter implements Filter{ // 过滤器销毁时执行 public void destroy() { } // 核心过滤逻辑 public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse res = (HttpServletResponse) response; // 获取当前请求的HTTP方法(如GET、POST、DELETE等) String method = req.getMethod(); // 仅允许GET和POST方法,其他方法直接返回403禁止访问 if(!method.toUpperCase().equals("POST") && !method.toUpperCase().equals("GET")){ res.setStatus(HttpServletResponse.SC_FORBIDDEN); // 403状态码:禁止访问 return; } // 合法方法,放行继续执行后续逻辑 filterChain.doFilter(request, response); } // 过滤器初始化时执行 public void init(FilterConfig filterConfig) throws ServletException { }}
(2)配置 web.xml,注册过滤器
在项目的 web.xml 文件中添加过滤器配置,让过滤器对所有请求生效:
<filter> <filter-name>httpMethodFilter</filter-name> <filter-class> cn.com.victorysoft.devcenter.component.usrmgr.security.filter.HttpMethodFilter </filter-class></filter>
<filter-mapping> <filter-name>httpMethodFilter</filter-name> <url-pattern>/*</url-pattern> <!-- 拦截所有请求 --></filter-mapping>
(3)额外加固:直接禁用 Tomcat 的 WebDAV 功能
若业务不需要 WebDAV,建议直接禁用该功能,步骤如下:
- 找到 Tomcat 安装目录下的 /conf/web.xml 文件;
- 在文件中找到关于 WebDAV 的 Servlet 和 Servlet-mapping 配置(通常包含“webdav”关键字);
- 将这些配置注释掉(或删除);
- 重启 Tomcat 服务器,即可完成 WebDAV 的禁用。
重要提醒:
此漏洞仅存在于 Tomcat 服务器,其他类型服务器(如 Nginx、Apache)需通过对应配置关闭不安全 HTTP 方法;
配置完成后,建议通过 Postman 等工具测试:用 DELETE、PUT等方法发起请求,若返回 403 状态码,则说明配置生效;
若确实需要使用 PUT 等方法(如 RESTful API 场景),需单独做权限校验,确保只有授权用户能使用。
连
载
预
告
安全攻击及防范手册
聚焦服务器管理!下一篇拆解“BEA WebLogic 管理界面”漏洞
今天我们搞定了 Tomcat 服务器特有的“启用了不安全的 HTTP 方法”漏洞。总结一下核心要点:防御的关键是“要么禁用 WebDAV,要么通过过滤器拦截危险方法”,优先只保留 GET 和 POST 两种常用方法。服务器的基础安全配置很容易被忽视,但却是整个 Web 应用的“第一道防线”,各位开发同学一定要重视!
下一篇(PART 7),我们将聚焦企业级服务器的管理安全,拆解“BEA WebLogic 管理界面”相关漏洞。WebLogic 作为常用的企业级应用服务器,其管理界面若配置不当,会成为黑客入侵的重灾区,可能导致服务器被完全控制。这部分内容对使用 WebLogic 的同学至关重要,千万别错过!
你在 Tomcat 服务器配置中有没有遇到过 WebDAV 相关的问题?或者在配置过滤器时遇到过难题?欢迎在评论区留言讨论,我们将在后续文章中针对性解答!
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:野猪与安全 耶度《服务器开门揖盗?禁用不安全 HTTP 方法刻不容缓!——Web 应用安全实战(PART 6)》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。











评论