解决:远端www服务支持TRACE请求漏洞的几种方式

艺帆风顺 发布于 2025-04-02 17 次阅读


1.为什么要禁止

漏洞描述:

目标WEB服务器启用了TRACE方法。TRACE方法是HTTP(超文本传输)协议定义的一种协议调试方法,该方法使得服务器原样返回任何客户端请求的内容(可能会附加路由中间的代理服务器的信息),由于该方法原样返回客户端提交的任意数据,因此,可用来进行跨站脚本(XSS)攻击,这种攻击方式又称为跨站跟踪攻击(XST)

漏洞危害:

恶意攻击者可以通过TRACE Method返回的信息了解到网站前端的一些信息,如缓存服务器等,从而为下一步的攻击提供便利。
恶意攻击者可以通过TRACE Method进行XSS攻击
即使网站对关键页面启用了HttpOnly头标记和禁止脚本读取cookie信息,那么通过TRACE Method恶意攻击者还是可以绕过这个限制读取到cookie信息。


2.怎么判断当前虚机是否存在trace漏洞

服务器输入:

curl -v -X TRACE http://ip:端口号

存在trace漏洞,解决完成之后,无200响应即可

3.解决方式

3.1虚机层解决

IIS服务器:

   

     URLScan

Apache服务器:找到相关apach配置目录

    1、停止Apache服务(以root权限登录)  # cd /opt/IBM/HTTPServer/bin  # ./apachectl stop 2、修改httpd.conf文件  # cd /opt/IBM/HTTPServer/conf  编辑httpd.conf文件  # 首先,激活rewrite模块(去掉符号#) LoadModule rewrite_module modules/mod_rewrite.so  # 启用Rewrite引擎 RewriteEngine On   # 对Request中的Method字段进行匹配:^TRACE 即以TRACE字符串开头 RewriteCond %{REQUEST_METHOD} ^TRACE   # 定义规则:对于所有格式的来源请求,均返回[F]-Forbidden响应 RewriteRule .* - [F]  对于2.0.55以上版本的apache服务器,有一种更简单的办法: TraceEnable off   3、启动Apache服务(以root权限登录)  # cd /opt/IBM/HTTPServer/bin  # ./apachectl start

    3.2代码层修改

    boot项目,内嵌undertow容器解决方案:

    pom依赖:

      dependency> groupId>org.springframwork.bootgroupId> artifactId>spring-boot-starter-undertowartifactId>dependency>

      前提是,这个类,可以被扫描到,componentScan扫描到

      注:定制器怎么调用、加载的,可参考:源码解析

        @Configurationpublic class UndertowWebServerCustomizerConfig implements WebServerFactoryCustomizerUndertowServletWebServerFactory>{  @Override public void customize(UndertowServletWebServerFactory factory){ factory.addDeploymentInfoCustomizers(deploymentInfo ->{ deploymentInfo.addInitualHandlerChainWrapper(new HandlerWrapper(){  @Override public HttpHandler wrap(HttpHandler handler){ HttpString[] disallowerHttpMethods = {HttpString.tryFromString("TRACE"),HttpString.tryFromString("TRACK") };  return new DisallowedMethodsHandler(handler,disallowerHttpMethods ); }  }); });  } }

        其余容器的解决方案如下:

        可参考:https://www.cnblogs.com/zcg-cpdd/p/14485370.html

          版权声明:本文内容始发于CSDN>作者: 一片星空~,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行可。始发链接:https://blog.csdn.net/qq_44691484/article/details/125064060在此特别鸣谢原作者的创作。此篇文章的所有版权归原作者所有,商业转载建议请联系原作者,非商业转载请注明出处