找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 113|回复: 0

Spring Cloud Gateway 远程代码执行漏洞(CVE-2022-22947)

[复制链接]

2万

主题

128

回帖

10万

积分

管理员

积分
105860
发表于 2022-6-10 10:50:17 | 显示全部楼层 |阅读模式 IP:山东省 移动/数据上网公共出口

登录后更精彩...O(∩_∩)O...

您需要 登录 才可以下载或查看,没有账号?立即注册

×
Spring Cloud Gateway 远程代码执行漏洞(CVE-2022-22947)

1.漏洞描述

        Spring Cloud Gateway 是基于 Spring Framework 和 Spring Boot 构建的 API 网关,它旨在为微服务架构提供一种简单、有效、统一的 API 路由管理方式。

Spring官方博客发布了一篇关于Spring Cloud Gateway的CVE报告,据公告描述,当启用和暴露 Gateway Actuator 端点时,使用 Spring Cloud Gateway 的应用程序可受到代码注入攻击。攻击者可以发送特制的恶意请求,从而远程执行任意代码。


2.影响版本

       漏洞名称:Spring Cloud Gateway远程代码执行漏洞
  漏洞影响版本:
             Spring Cloud Gateway<3.1.1
        Spring Cloud Gateway<3.0.7
        Spring Cloud Gateway其他已不再更新的版本
       漏洞危害等级:高危
  厂商是否已发布漏洞补丁:是


3.漏洞环境搭建

利用docker搭建漏洞复现环境

git pul  #更新vulhub


6.png


cd到/vulhub/spring/CVE-2022-22947目录


启动漏洞环境


└─$ sudo docker ps -a                                                                                                                                   1 ⨯
CONTAINER ID   IMAGE                               COMMAND                  CREATED              STATUS                     PORTS                                       NAMES
3c2ccb7817a3   vulhub/spring-cloud-gateway:3.1.0   "java -Djava.securit…"   About a minute ago   Up About a minute          0.0.0.0:8080->8080/tcp, :::8080->8080/tcp   cve-2022-22947_spring_1
8eadb1952371   vulhub/spring-webmvc:5.3.17         "catalina.sh run"        2 weeks ago          Exited (255) 2 weeks ago   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp   cve-2022-22965_spring_1


7.png


[Bash shell] 纯文本查看 复制代码


访问http://10.10.3.245:8080

5.png


4.漏洞复现

(1). 并提交以下数据,用于创建一条恶意路由:


1add.png
  • id 字段指定新路由的名称,必须全局唯一。
  • filters 字段给这条路由指定若干个过滤器。过滤器用于对请求和响应进行修改。
  • name 字段指定要添加的过滤器名称,这里添加了一个 AddResponseHeader 过滤器,用于 gateway 给客户端返回响应之前添加一个响应头。
  • args.name 字段指定要添加的响应头。
  • args.value 字段指定响应头的值。这里的值是要执行的 SpEL 表达式,用于执行 whoami 命令。注意需要将命令输出结尾的换行符去掉,否则过滤器执行时会抛出异常说「响应头的值不能以 \r 或 \n 结尾」。
  • uri 字段指定将客户端请求转发到 http://httpbin.org/get
  • predicates 字段指定匹配此路由的条件。这里指定了两个条件,一个是请求的方法为 GET,一个是请求的 URI 为 /EchoSec




(2). 接着以 POST 方法请求 /actuator/gateway/refresh ,用于刷新路由,使刚添加的恶意路由生效。


2refresh.png

(3). 最后以 GET 方法请求 /EchoSec,触发恶意路由。在响应中可以看到过滤器添加的响应头:


3execute.png



删除添加的恶意路由


4delete.png


5.修复方案
  安全建议
  官方已发布漏洞补丁及修复版本,请评估业务是否受影响后,酌情升级至安全版本(3.1.x用户应升级到3.1.1+;3.0.x用户应升级到3.0.7+)
  临时缓解措施
  1.如果不需要Gateway actuator endpoint功能,可通过以下配置文件禁用:
  
  2.如果需要actuator,则应使用Spring Security对其进行防护,可参考以下网址:
  参考连接


refer:

         1. https://blog.csdn.net/qq_36197704/article/details/123344997

        2. https://www.safedog.cn/news.html?id=5071






回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|IOTsec-Zone|在线工具|CTF WiKi|CTF平台汇总|CTF show|ctfhub|棱角安全|rutracker|攻防世界|php手册|peiqi文库|CyberChef|猫捉鱼铃|手机版|小黑屋|cn-sec|分享屋 ( 鲁ICP备2021028754号 )

GMT+8, 2024-5-18 16:51

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表