CVE-2022-22947 Spring Cloud Gateway 远程代码执行漏洞复现

1.1 综述

202231日,VMware官方发布漏洞报告,在使用Spring Colud Gateway的应用程序开启、暴露Gateway Actuator端点时,会容易造成代码注入攻击,攻击者可以制造恶意请求,在远程主机进行任意远程执行

1.2 漏洞描述

漏洞编号

CVE-2022-22947

漏洞评级

高危

漏洞类型

远程代码执行

影响范围

Spring Cloud Gateway 3.1.x < 3.1.1
Spring Cloud Gateway 3.0.x < 3.0.7
旧的、不受支持的版本也会受到影响

漏洞分析

ShortcutConfigurable.java中的getValue方法可以被ConfigurationService.java包中ConfigurableBuilder的normalizeProperties函数的this.properties参数控制修改,攻击者通过添加带有filter的恶意路由,当重新加载路由时,会触发对参数的归一化逻辑,从而导致filter参数value中的SPEL表达式被解析。

第2章 漏洞复现

2.1 windows环境

2.1.1 工具准备

Burpsuite

2.1.2 环境搭建

1. 打开vulfocus靶场启动环境。如图所示

2. 访问http://192.168.117.131:45397,若可以正常访问,则漏洞环境启动成功。

2.1.3 漏洞复现

1. 访问页面并抓包

2. 构造并发送恶意的路由请求

* id 字段指定新路由的名称,必须全局唯一;

filters

* 字段给这条路由指定若干个过滤器。过滤器用于对请求和响应进行修改;

* name 字段指定要添加的过滤器,这里添加了一个 AddResponseHeader 过滤器,用于 gateway 给客户端返回响应之前添加一个响应头;

* args.name 字段指定要添加的响应头;

* args.value 字段指定响应头的值。这里的值是要执行的 SPEL 表达式,用于执行 whoami 命令。注意需要将命令输出结尾的换行符去掉,否则过滤器执行时会抛出异常说「响应头的值不能以 \r 或 \n 结尾」;

* uri 字段指定将客户端请求转发到 http://example.com。

3. 应用之前的路由发送此数据包,此数据包可触发表达式

4. 发送此数据包,查看命令回显,可以看到之前添加的路由

5. 访问actuator API接口

6. 访问env接口并获取flag

7.复制通关

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值