RASP | CVE-2022-22965 Spring核心框架Spring4Shell远程命令执行漏洞原理与修复方式分析

admin 2022年4月3日21:23:53评论157 views字数 1177阅读3分55秒阅读模式

漏洞简介

    Spring是目前全球最受欢迎的Java轻量级开源框架。近日网上爆出Spring核心框架存在RCE漏洞(编号CVE-2022-22965)。在野曝光一段时间后,与近几年流行的高危漏洞命名方式类似(比如ProxyShell、log4jShell等),这个漏洞被称为Spring4Shell。3月31日官方终于发布了漏洞信息,并在新版本v5.3.18和v5.2.20中修复了漏洞。

    分析后发现漏洞结合了JDK9及以上版本一个新的属性,成功绕过历史漏洞CVE-2010-1622修复补丁,同时结合Tomcat容器的一些操作属性,可以实现GetShell。当然Weblogic、Jetty等其他Java中间件或应用程序也可能构建出完整利用链,但从目前研究进度来看,漏洞触发需要至少满足以下条件:

影响版本

至少满足以下条件:

  • JDK9或以上版本系列

  • Spring框架或衍生的SpringBoot等框架,版本小于v5.3.18或v5.2.20

  • Spring JavaBean表单参数绑定需要满足一定条件

  • 部署在Tomcat容器中,且日志记录功能开启(默认状态)

漏洞环境

jdk11+tomcat8.5+war包

启动进程后在管理端看到已经开启防护了

RASP | CVE-2022-22965 Spring核心框架Spring4Shell远程命令执行漏洞原理与修复方式分析


RASP | CVE-2022-22965 Spring核心框架Spring4Shell远程命令执行漏洞原理与修复方式分析

发起攻击向tomcat写入jsp(不允许披露)

RASP | CVE-2022-22965 Spring核心框架Spring4Shell远程命令执行漏洞原理与修复方式分析


发起请求:

http://111.229.199.6:8080/tomcatwar.jsp?pwd=j&cmd=cat%20/etc/passwd

攻击被阻断了

RASP | CVE-2022-22965 Spring核心框架Spring4Shell远程命令执行漏洞原理与修复方式分析

攻击详情

RASP | CVE-2022-22965 Spring核心框架Spring4Shell远程命令执行漏洞原理与修复方式分析

RASP | CVE-2022-22965 Spring核心框架Spring4Shell远程命令执行漏洞原理与修复方式分析


RASP | CVE-2022-22965 Spring核心框架Spring4Shell远程命令执行漏洞原理与修复方式分析

RASP | CVE-2022-22965 Spring核心框架Spring4Shell远程命令执行漏洞原理与修复方式分析

修复

目前仅是命令执行,不确定是否有其他攻击如内存马等,最保险的方式是,禁用掉 class 字段的绑定。下来代码是业界给出修复策略。

public void setAllowedFields(WebDataBinder dataBinder) {    String[] abd = new String[]{"class.*", "Class.*", "*.class.*", "*.Class.*"};    dataBinder.setDisallowedFields(abd);}

    我们新增了临时修复插件,插件运行时生效,即在不重启jvm的情况下生效,避免了用户的升级。 插件代码如下: 


RASP | CVE-2022-22965 Spring核心框架Spring4Shell远程命令执行漏洞原理与修复方式分析


    借助于 jrasp 灵活的插件技术,很容易对高危应用推出临时补丁,有效提升安全对抗能力,缩短漏洞逃逸时间。jrasp 也是目前业内唯一个具备漏洞热修复技术的rasp。热修护能力越来成为rasp的标配。

官网:http://www.jrasp.com

github:https://github.com/jvm-rasp/jrasp-agent

加入技术交流群请添加微信:sear2022

   

原文始发于微信公众号(RASP安全技术):RASP | CVE-2022-22965 Spring核心框架Spring4Shell远程命令执行漏洞原理与修复方式分析

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年4月3日21:23:53
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   RASP | CVE-2022-22965 Spring核心框架Spring4Shell远程命令执行漏洞原理与修复方式分析http://cn-sec.com/archives/866330.html

发表评论

匿名网友 填写信息