首页 > 其他分享 >Spring RCE漏洞

Spring RCE漏洞

时间:2023-04-29 16:33:39浏览次数:36  
标签:Tomcat Spring 漏洞 RCE 日志 CVE

Spring RCE漏洞

目录

一、漏洞概况与影响

CVE编号:CVE-2022-22965

受影响范围:

  • Spring Framework 5.3.X < 5.3.18
  • Spring Framework 5.2.X < 5.2.20
  • JDK >=9
  • 使用Tomcat中间件且开启了Tomcat日志记录的应用系统

二、Spring动态参数绑定

将HTTP请求中的的请求参数或者请求体内容,根据Controller方法的参数,自动完成类型转换和赋值。

PropertyDescriptor类

JDK自带:

作用:自动调用类对象的get/set方法,进行取值和赋值。

BeanWrapperlmpl类

Spring自带:

作用:对Spring容器中管理的对象,自动调用get/set方法,进行取值和赋值。由PropertyDescriptor类包装。

三、漏洞复现

1、在vulhub中开启靶机CVE-2022-22965

2、用python脚本修改Tomcat日志文件

python vulhub_CVE-2022-22965_poc.py --url=http://192.168.142.133:8080

3、利用

http://192.168.142.133:8080/tomcatwar.jsp?pwd=j&cmd=id

四、漏洞原理

因为Spring进行参数绑定的时候会自带一个class属性,可以通过class属性找到其他属性构造一条利用链去修改了Tomcat日志配置文件导致日志文件文件名,文件内容,存储路径被修改成jsp恶意文件,最终导致命令任意执行。

五、漏洞排查和修复

排查:

1、是否启用Spring参数绑定功能

2、JDK版本9+

3、Tomcat部署方式及版本

4、Tomcat Access功能

5、流量分析

6、日志分析

修复:

1、升级Spring

2、升级Tomcat

3、安装安全产品,比如WAF

标签:Tomcat,Spring,漏洞,RCE,日志,CVE
From: https://www.cnblogs.com/candada/p/17364189.html

相关文章

  • Codeforces Round 854 补题总结
    CodeforcesRound854补题总结前言昨天做这套题很不顺,今天补完题大概总结一下。总结RecentActions按题意模拟即可,考虑到前\(n\)个数一定始终在后\(m\)个数的前面,所以说当当前队列中如果没有出现\(x\)而在第\(i\)轮放进了\(x\),那么当前在队首的编号小于\(n\)的数......
  • Codeforces Round 868 Div 2
    A.A-characteristic(CF1823A)题目大意要求构造一个仅包含\(1\)和\(-1\)的长度为\(n\)的数组\(a\),使得存在\(k\)个下标对\((i,j),i<j\)满足\(a_i\timesa_j=1\)。解题思路当有\(x\)个\(1\),\(y\)个\(-1\)时,其满足条件的下标对数量为\(\frac{x(x-1)}{2}......
  • springboot 的三种启动方式
    1、常规操作,都是通过main方法启动了;2、部署到服务器上,一般都是通过java-jarxxxx.jar包的方式启动了;3、第三种是没有main方法的时候,本地想启动,可以通过maven的运行命令来启动,cmd定位到当前项目所在的目录,如果是微服务有很多个模块,定位到自己的模块位置,然后使用:mvnspring......
  • SpringBoot RabbitMQ死信队列
    1.死信定义无法被消费的消息,称为死信。如果死信一直留在队列中,会导致一直被消费,却从不消费成功,专门有一个存放死信的队列,称为死信队列(DDX,dead-letter-exchange)。死信队列DLX,DeadLetterExchange的缩写,又死信邮箱、死信交换机。其实DLX就是一个普通的交换机,和一般的交换机没有......
  • 【SpringBoot 学习】54、Spring Boot 集成 File Storage 实现各个平台文件对象处理
    文章目录SpringBoot集成FileStorageSpringBoot集成FileStorage统一依赖管理<!--spring-file-storage--><spring-file-storage.version>0.7.0</spring-file-storage.version><minio.versioin>8.4.3</minio.versioin>&l......
  • 【SpringBoot 学习】53、Spring Boot 集成 Spring Boot Admin
    文章目录SpringBoot集成SpringBootAdminSpringBootAdmin服务端SpringBootAdmin客户端SpringBoot集成SpringBootAdminSpringBootAdmin是服务端、客户端模式。如果把两个端搭建在同一个项目中也可以,但是客户端要是挂了,服务端也挂了,所以可以但没必要搭建独立的S......
  • Codeforces Round 868 (Div. 2)
    Preface恭迎废物hl666终于回到了他忠诚的蓝名之位本来这场25min切完前三题而且没挂的时候感觉状态不错的,然后D被自己的一个假做法坑了1h最后ztc想出了大概的构造方法后已经来不及写了,一些细节没考虑好直接爆炸本来当时就有弃D开E的想法的,但可以E的题意在公告出来之前就已经读......
  • SpringBoot RabbitMQ死信队列
    1.死信定义无法被消费的消息,称为死信。如果死信一直留在队列中,会导致一直被消费,却从不消费成功,专门有一个存放死信的队列,称为死信队列(DDX,dead-letter-exchange)。死信队列DLX,DeadLetterExchange的缩写,又死信邮箱、死信交换机。其实DLX就是一个普通的交换机,和一般的交换......
  • SpringCloud Stream集成RabbitMQ
    1.概述SpringCloudStream框架抽象出了三个最基础的概念来对各种消息中间件提供统一调用:DestinationBinders:负责集成外部消息系统的组件。DestinationBinding:由Binders创建的,负责沟通外部消息系统、消息发送者和消息消费者的桥梁。Message:消息发送者与消息消费......
  • Spring Cloud Gateway RCE
    SpringCloudGatewayRCE目录SpringCloudGatewayRCE一、基本介绍二、漏洞复现三、原理分析四、修复方法一、基本介绍CVE编号:CVE-2022-22947​SpringCloudGateway是Spring中的一个API网关。其3.1.0及3.0.6版本(包含)以前存在一处SpEL表达式注入漏洞,当攻击者可以访问Actuato......