当前位置: 首页 > news >正文

SpringCloudGateway(spel)漏洞复现 Spring + Swagger 接口泄露问题

环境配置 gateway

Spring Cloud : 这个就是分布式的微服务组件     

微服务 : 一般指的是独立的,专注于一项功能的服务

Gateway 这个其实是个云端的网关配置(他的作用就是对访问web的流量进行防护比如一些爬虫的阻截)
新建项目的时候选择:

以上两个

新建项目的时候选择  cloudRounting 下的Gateway
和ops下的监控<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId><version>3.1.0</version>
</dependency>

配置一些pom.xml

还有一个配置就是配置上 Gateway的 yml

application.yml
server:port: 8081management:endpoints:web:exposure:include: gatewayendpoint:gateway:enabled: true
spring:cloud:gateway:routes:- id: baiduuri: 'https://www.baidu.com/'order: 8000predicates:- Path=/skip/baidufilters:- StripPrefix=2

更改springboot版本:

<spring-boot.version>2.5.2</spring-boot.version>
<spring-cloud.version>2020.0.3</spring-cloud.version>

配置好之后直接运行 :

访问监控器 如果这是个正常的情况说明 对方的Actuator配置的非常好

但是这个 Gateway也是可以造成Spel注入漏洞的

前提条件就是对方需要开启了监控模式的同时 gateway配置端口泄露 

利用 :

Swagger配置和api的利用

简介 :

什么是  Swagger?

它的作用就是 对项目进行提前的测试运行到web中,这个api主要的作用就是进行测试项目各个页面的它在开发的作用就是进行api接口的测试 api在正常情况下是隐藏的 但是这个依赖项是可以对其进行测试的 因为api有很多的接口 使用这个可以更简单的进行测试 

这个功能类似于 :java自带的自我检测接口(接口就是指有参数能让web页面变化的东西)

使用Fafo 进行搜索 :

配置

新建项目的时候只需要选择一个

pom文件
1、引入依赖
先引用 2.9版本的
<--2.9.2版本-->
<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version>
</dependency>
<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.9.2</version>
</dependency>
不同版本的服务端不同 :/swagger-ui.html<--3.0.0版本-->
<dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.0</version>
</dependency>/swagger-ui/index.html
2、 服务配置 :@EnableSwagger  第几版本就写几 如 @EnableSwagger23、配置访问
#application.properties
spring.mvc.pathmatch.matching-strategy=ant-path-matcher
或
#application.yml
springmvc:pathmatch:matching-strategy: ant_path_matcher

注意一点就是 不要把 SpringBootApplication删掉 这个是spring必须有的东西

运行:

利用介绍

例如这个 这些是api接口的参数 我们可以通过操作参数来测试其安全性

但是大规模的参数我们怎么辨别敏感的:就是通过参数的名字或者api的名字 如api的名字是 user admin等

练习 :

这边建一个 RCE的利用文件

这样就能触发 whoami

但是在

这么多接口面前 就需要使用工具进行api的分析

工具分析Swagger api 接口

使用 :

导入之后就能在接口找到

然后把接口的数据进行导入到测试项目去

http://www.lqws.cn/news/476695.html

相关文章:

  • 大零售生态下开源链动2+1模式、AI智能名片与S2B2C商城小程序的协同创新研究
  • Python 前端框架/工具合集
  • python实战项目77:足球运动员数据分析
  • 《高等数学》(同济大学·第7版)第五章 定积分 第三节积分的换元法和分部积分法
  • 在windows上使用file命令
  • 多团队并行作业时,如何清晰划分职责边界
  • 统计用户本月的连续登录天数
  • 二十四:ai服饰+模特
  • 企业架构与IT架构关系的探讨
  • 医疗诊断中的异常检测实战——基于AutoEncoder与One-Class SVM的少样本学习
  • EM求解的高斯混合模型——Q函数的极大似然估计(八)
  • Python 使用 Requests 模块进行爬虫
  • ROS 2 中 Astra Pro 相机与 YOLOv5 检测功能编译启动全记录
  • requests 库最佳实践速查表
  • DeepSeek13-open-webui Pipelines编写和部署
  • Ubuntu20.04通过ssh协议配置远程终端
  • 测试模板x
  • WebRTC(七):媒体能力协商
  • MATLAB GUI界面设计 第一章——初识APP Designer
  • 跨域问题说明
  • MaxStateSuper模型详解与实现
  • langchain从入门到精通(十三)——Runnable组件
  • Java面试复习:Java基础、OOP与并发编程精要
  • synchronized 关键字深度解析
  • SAP顾问职位汇总(第25周)
  • SAP金属行业解决方案:无锡哲讯科技助力企业数字化转型与高效运营
  • Vui:轻量级语音对话模型整合包,让交互更自然
  • Python 包管理新选择:全面了解 uv(附 Conda 对比)
  • 931、下降路径最小和
  • 硬件面经-具身机器人通用技术要求