「最新漏洞预警」CVE22965漏洞预警分析报告

「最新漏洞预警」CVE-2022-22965漏洞预警分析报告

壹-漏洞介绍

Spring 是一个支持快速开发 Java EE 应用程序的框架。它提供了一系列底层容器和基础设施,并可以和大量常用的开源框架无缝集成,可以说是开发 Java EE 应用程序的必备。该漏洞是由于 Spring Framework 未对传输的数据进行有效的验证,攻击者可利用该漏洞在未授权的情况下,构造恶意数据进行远程代码执行攻击,最终获取服务器权限。

贰-攻击场景

攻击场景如下:* JDK9及其以上版本;* 使 了Spring-beans包;* 使 了Spring参数绑定;* Spring参数绑定使 的是 基本参数类型,例如 般的POJO即可。

叁-漏洞分析

该漏洞基本使 式就是利 . 的形式给参数进 赋值,实际赋值过程会使 反射调 参数的 getter or setter 。它需要绑定的参数的数据结构是 个简单的POJO,具体如下:「最新漏洞预警」CVE-2022-22965漏洞预警分析报告「最新漏洞预警」CVE-2022-22965漏洞预警分析报告

Controller写法如下:「最新漏洞预警」CVE-2022-22965漏洞预警分析报告

参数绑定的整个流程如下:

「最新漏洞预警」CVE-2022-22965漏洞预警分析报告

流程 会有 个 class 属性缓存:

「最新漏洞预警」CVE-2022-22965漏洞预警分析报告

简单的就可以获取到 class 对象,那剩下的就是利 这个 class 对象构造利 链了。 前 较简单的 式就是修改Tomcat的 志配置,向 志中写 shell。 条完整的利 链如下:

「最新漏洞预警」CVE-2022-22965漏洞预警分析报告

具体的攻击步骤如下,先后发送5个请求:

「最新漏洞预警」CVE-2022-22965漏洞预警分析报告

发送完毕这5个请求后,Tomcat的 志配置被修改成如下:

「最新漏洞预警」CVE-2022-22965漏洞预警分析报告

接着,我们只需要随便发送 个请求,加 个header,即可写 shell:

「最新漏洞预警」CVE-2022-22965漏洞预警分析报告「最新漏洞预警」CVE-2022-22965漏洞预警分析报告

可以正常访问shell:

「最新漏洞预警」CVE-2022-22965漏洞预警分析报告

肆-漏洞复现

Spring可以和大量常用的开源框架无缝集成,可以说是开发 Java EE 应用程序的必备。该漏洞是由于 Spring Framework 未对传输的数据进行有效的验证,攻击者可利用该漏洞在未授权的情况下,构造恶意数据进行远程代码执行攻击,最终获取服务器权限。

VULFOCUS靶场找到“Spring Framework 远程命令执行漏洞”,启动创建一个靶场:

「最新漏洞预警」CVE-2022-22965漏洞预警分析报告
使用公开EXP,获取shell地址:「最新漏洞预警」CVE-2022-22965漏洞预警分析报告

浏览器访问shell地址,发现whoami命令已经被执行:

「最新漏洞预警」CVE-2022-22965漏洞预警分析报告

尝试将whoami修改为创建/删除文件夹。

创建文件夹test:「最新漏洞预警」CVE-2022-22965漏洞预警分析报告「最新漏洞预警」CVE-2022-22965漏洞预警分析报告
删除文件夹test:「最新漏洞预警」CVE-2022-22965漏洞预警分析报告「最新漏洞预警」CVE-2022-22965漏洞预警分析报告

伍-修复建议

一、官方修复建议:

当前Spring Framework 官方已发布最新版本,建议受影响的用户及时更新升级到最新版本。链接如下:

https://github.com/spring-projects/spring-framework/tags

注:SpringFramework 5.3.18和Spring Framework 5.2.20是 Spring 官方提供的两个安全版本。(截止至3月31日)

二、临时修复建议:

该临时修复建议存在一定风险,建议用户可根据业务系统特性审慎选择采用临时修复方案,需同时按以下两个步骤进行漏洞的临时修复:

步骤1.在应用中全局搜索@InitBinder注解,看看方法体内是否调用dataBinder.setDisallowedFields方法,如果发现此代码片段的引入,则在原来的黑名单中,添加{"class.*","Class.*","*. class.*", "*.Class.*"}。(注:如果此代码片段使用较多,需要每个地方都追加。)

步骤2. 在应用系统的项目包下新建以下全局类,并保证这个类被 Spring 加载到(推荐在Controller所在的包中添加)。完成类添加后,需对项目进行重新编译打包和功能验证测试,并重新发布项目。

展开阅读全文

页面更新:2024-05-05

标签:漏洞   靶场   绑定   应用程序   文件夹   步骤   参数   代码   建议   数据   最新

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top