Spring Cloud Function SPEL注入远程命令执行漏洞预警与复现

admin 2022年3月28日19:17:18评论393 views字数 1733阅读5分46秒阅读模式
Spring Cloud Function是基于Spring Boot的函数框架,它抽象出所有传输细节和基础架构,允许开发人员保留所有熟悉的工具和流程,并专注于业务逻辑。

漏洞详情

Spring Cloud Function 官方于近期发布的 commit 中修复了一处 SPEL 表达式注入漏洞,该漏洞可导致未授权用户可在请求头中添加“spring.cloud.function.routing-expression”参数来执行任意命令代码。

漏洞影响版本

目前可知的可能受到影响的版本:3.0.0<= Spring Cloud Function <= 3.2.2(commit dc5128b)


漏洞复现

本次将使用本地搭建的漏洞环境的形式进行复现,测试的版本为:Spring Cloud Function v3.2.0,本机Java环境为:JDK1.8.181。如需线上靶机可使用vulfocus平台进行复现。

本地环境可直接使用官方提供的sample环境进行搭建测试示例,直接下载源码:

https://github.com/spring-cloud/spring-cloud-function/tree/main/spring-cloud-function-samples/function-sample

下载后可直接使用idea打开spring-cloud-function-3.2.0spring-cloud-function-samplesfunction-sample项目文件,然后直接运行function-sample项目:

Spring Cloud Function SPEL注入远程命令执行漏洞预警与复现

该项目运行后默认的访问端口为8080,若需要更改Web访问端口的话,可在resourcesapplication.properties配置文件中使用server.port参数进行设置:

Spring Cloud Function SPEL注入远程命令执行漏洞预警与复现

运行后,直接访问目标环境http://127.0.0.1:8888即可,由于本次复现将进行burp抓包,所以本次将访问另一个本机地址http://172.17.14.182:8888/进行漏洞复现演示:

Spring Cloud Function SPEL注入远程命令执行漏洞预警与复现

该漏洞利用起来比较简单,漏洞环境在默认配置的情况下,可参照pen4uin大神发布的文章,在访问特定路由地址/functionRouter,在请求头添加“spring.cloud.function.routing-expression”参数便可直接POST发包即可利用:

Spring Cloud Function SPEL注入远程命令执行漏洞预警与复现

至此,漏洞复现到这已基本结束。另一种是可访问任意路由进行漏洞利用,但这种需要修改Spring Cloud Function 项目的配置才可实现,这种方式的具体利用在此就不展开详述了,可查看pen4uin大神发布的文章https://mp.weixin.qq.com/s/U7YJ3FttuWSOgCodVSqemg。
至于spring.cloud.function.routing-expression参数的payload在官方commit dc5128b中已经写明了相关详情:

Spring Cloud Function SPEL注入远程命令执行漏洞预警与复现

具体的各位看官可自行前去研究分析。

漏洞修复建议

虽然官方还未正式发布新的 release 版本,但是已在当前最新 commit 中修复,可持续关注并及时更新:https://github.com/spring-cloud/spring-cloud-function/tags


参考

https://mp.weixin.qq.com/s/U7YJ3FttuWSOgCodVSqemg 

https://mp.weixin.qq.com/s/2lXXtrwIerdPGOfPAms64Q

https://mp.weixin.qq.com/s/ssHcLC72wZqzt-ei_ZoLwg

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

声明:本文作为个人学习记录使用,请勿用于非法行为,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本公众号与文章作者不为此承担任何责任。

Spring Cloud Function SPEL注入远程命令执行漏洞预警与复现




原文始发于微信公众号(信安搬运工):Spring Cloud Function SPEL注入远程命令执行漏洞预警与复现

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月28日19:17:18
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Spring Cloud Function SPEL注入远程命令执行漏洞预警与复现https://cn-sec.com/archives/845162.html

发表评论

匿名网友 填写信息