springboot使用undertow服务器禁用TRACE请求
创始人
2025-01-20 00:33:13
0

问题描述:

今日在工作中遇到服务器被扫描出一个漏洞,描述如下:
风险描述:远程 Web 服务器支持 TRACE 和/或 TRACK方法。TRACE和 TRACK 是用于调试 Web 服务器连接的 HTTP 方法。
风险影响:通过一个跨站追踪攻击窃职 cookies 和验证信任

使用框架

springboot + redis +mybatis
web服务使用springboot 内嵌web服务 undertow
配置如下:

                               org.springframework.boot             spring-boot-starter-web                                                      spring-boot-starter-tomcat                      org.springframework.boot                                                                        org.springframework.boot             spring-boot-starter-undertow                      io.undertow         undertow-servlet           

在网上找啊找啊,大多是tomcat的,终于找到一个

@Bean public UndertowEmbeddedServletContainerFactory embeddedServletContainerFactory() {     UndertowEmbeddedServletContainerFactory factory = new UndertowEmbeddedServletContainerFactory();     factory.addBuilderCustomizers(new UndertowBuilderCustomizer() {          @Override         public void customize(Builder builder) {             builder.addHttpListener(8080, "0.0.0.0");         }      });     return factory; }  

很遗憾不能用,各种类找不到BUG,接续找,终于找到springboot 2.0之后类名字变更,所以修改如下:

package com.ruoyi.medicine.config;  import io.undertow.servlet.api.DeploymentInfo; import io.undertow.servlet.api.SecurityConstraint; import io.undertow.servlet.api.WebResourceCollection; import org.springframework.boot.web.embedded.undertow.UndertowDeploymentInfoCustomizer; import org.springframework.boot.web.embedded.undertow.UndertowServletWebServerFactory; import org.springframework.boot.web.server.WebServerFactory; import org.springframework.boot.web.server.WebServerFactoryCustomizer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.HttpMethod;  /**  * @author wang'hai'yang  * @Description:  * @date 2024/2/2110:46  */ @Configuration public class EmbeddedServletContainerCustomizerConfig {      @Bean     public WebServerFactoryCustomizer containerCustomizer() {         return new WebServerFactoryCustomizer() {             @Override             public void customize(WebServerFactory factory) {                 if(factory.getClass().isAssignableFrom(UndertowServletWebServerFactory.class)){                     UndertowServletWebServerFactory underTowContainer = (UndertowServletWebServerFactory) factory;                     underTowContainer.addDeploymentInfoCustomizers(new ContextSecurityCustomizer());                 }             }         };     }      private static class ContextSecurityCustomizer implements UndertowDeploymentInfoCustomizer {         @Override         public void customize(DeploymentInfo deploymentInfo) {             SecurityConstraint constraint = new SecurityConstraint();             WebResourceCollection traceWebresource = new WebResourceCollection();             traceWebresource.addUrlPattern("/*");             traceWebresource.addHttpMethod(HttpMethod.TRACE.toString());             constraint.addWebResourceCollection(traceWebresource);             deploymentInfo.addSecurityConstraint(constraint);         }     } }  

测试方式及结果

在这里插入图片描述
如图所示,代表成功,否则 红框所示地方显示 HTTP/1.1 200 OK

相关内容

热门资讯

围绕透视问题!wepoker透... 围绕透视问题!wepoker透视脚本视频,德普之星怎么开辅助,其实是真的有挂(有挂透视)1、德普之星...
揭露一下!光明辅助器,潮汕掌上... 揭露一下!光明辅助器,潮汕掌上娱破解,总是真的有挂(哔哩哔哩)1、打开软件启动之后找到中间准星的标志...
无独有偶!wepoker私人局... 无独有偶!wepoker私人局透视,智星德州可以透视吗,都是确实有挂(有挂透明挂)1.智星德州可以透...
教你一下!四川家园游戏辅助软件... 教你一下!四川家园游戏辅助软件,阿拉斗牌作弊视频,一贯是真的有挂(哔哩哔哩)四川家园游戏辅助软件能透...
黑科技辅助挂!wepoker怎... 黑科技辅助挂!wepoker怎么看底牌,德扑之星辅助工具如何设置,一贯存在有挂(有挂秘籍)1、很好的...
解迷一下!福州十八扑外卦视频,... 解迷一下!福州十八扑外卦视频,wepoker辅助器免费下载,原来真的是有挂(哔哩哔哩);1、操作简单...
据玩家消息!hhpoker到底... 据玩家消息!hhpoker到底可以作弊吗,德普之星辅助工具如何设置,竟然真的有挂(有挂分享)据玩家消...
关于一下!微信开心泉州辅助器,... 关于一下!微信开心泉州辅助器,赣牌圈的好牌几率,一直存在有挂(哔哩哔哩)1、超多福利:超高返利,海量...
今日!德州局怎么透视,智星菠萝... 今日!德州局怎么透视,智星菠萝可以辅助吗,切实是真的有挂(确实有挂)1、智星菠萝可以辅助吗免费脚本咨...
教你一下!边锋干瞪眼ios辅助... 教你一下!边锋干瞪眼ios辅助,祺友互娱脚本,竟然有挂(哔哩哔哩);1、每一步都需要思考,不同水平的...