Web开发-JavaEE应用&SpringBoot栈&Actuator&Swagger&HeapDump&提取自动化

知识点:

1、安全开发-JavaEE-常见依赖-Actuator&Swagger

2、安全开发-JavaEE-安全问题-配置安全&接口测试

一、演示案例-WEB开发-JavaEE-监控依赖-SpringBoot&Actuator&配置安全

SpringBoot Actuator模块提供了生产级别的功能,比如健康检查,审计,指标收集,HTTP跟踪等,帮助我们监控和管理Spring Boot应用。



1、引入依赖

bash 复制代码
<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

2、配置监控

暴露-基于application.properties配置文件

bash 复制代码
management.endpoints.web.exposure.include=*






暴露-基于application.yml配置文件(有的应用用这个)

bash 复制代码
management:
endpoints:
web:
exposure:
include: '*'

安全配置-application.properties配置文件

bash 复制代码
management.endpoint.env.enabled=false
management.endpoint.heapdump.enabled=false


安全配置-application.yml配置文件(有的应用用这个)

bash 复制代码
management:
endpoint:
heapdump:
enabled: false #启用接口关闭
env:
enabled: false #启用接口关闭

3、图像化监控Server&Client端界面

Server:引入Server依赖-开启


bash 复制代码
@EnableAdminServer



Client:引入Client依赖-配置(连接目标,显示配置等)




效果:服务端等待客户端的加入,加入后从服务端页面就能监控客户端应用


4、安全问题-heapdump泄漏




自动化-JDumpSpider提取器

https://github.com/whwlsfb/JDumpSpider


半手工-heapdump_tool提取器

https://github.com/wyzxxz/heapdump_tool

分析提取出敏感信息(配置帐号密码,接口信息 数据库 短信 云应用等配置)

5、额外安全-SpringCloud Gateway RCE(CVE-2022-22947)

漏洞文章参考:https://github.com/LandGrey/SpringBootVulExploit

漏洞利用工具:https://github.com/wh1t3zer/SpringBootVul-GUI

创建SpringCloud Gateway+Actuator项目


更改项目版本及漏洞Gateway依赖版本

bash 复制代码
<spring-boot.version>2.5.2</spring-boot.version>
<spring-cloud.version>2020.0.3</spring-cloud.version>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-gateway</artifactId>
    <version>3.1.0</version>
</dependency>


启动项目进行测试


手工复现参考:https://www.cnblogs.com/qgg4588/p/18104875

二、演示案例-WEB开发-JavaEE-API接口依赖-SpringBoot&Swagger&接口测试

bash 复制代码
Swagger是当下比较流行的实时接口文档生成工具。接口文档是当前前后端分离项目中必不可少的工具,在前后端开发之前,后端要先出接口文档,前端根据接口文档来进行项目的开发,双方开发结束后在进行联调测试。
简单来说就是用来调试接口用的,在WEB页面进行调试。
参考:https://blog.csdn.net/lsqingfeng/article/details/123678701


1、引入依赖

bash 复制代码
<--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>
bash 复制代码
<--3.0.0版本-->
<dependency>
  <groupId>io.springfox</groupId>
  <artifactId>springfox-boot-starter</artifactId>
  <version>3.0.0</version>
</dependency>

2、配置访问

application.properties配置文件

bash 复制代码
spring.mvc.pathmatch.matching-strategy=ant-path-matcher

application.yml配置文件(有些应用会用这个文件)

bash 复制代码
spring
mvc:
pathmatch:
matching-strategy: ant_path_matcher

2.X版本启动需要添加@EnableSwagger2

2.X访问路径:http://ip:port/swagger-ui.html










3.X版本启动需要添加@EnableOpenApi

3.X访问路径:http://ip:port/swagger-ui/index.html

3、安全问题

自动化测试工具:Apifox

bash 复制代码
泄漏应用接口:用户登录,信息显示,上传文件等
可用于对未授权访问,信息泄漏,文件上传等安全漏洞的测试.

本地环境测试












互联网环境测试


相关推荐
XMYX-03 小时前
Spring Boot + Prometheus 实现应用监控(基于 Actuator 和 Micrometer)
spring boot·后端·prometheus
@yanyu6665 小时前
springboot实现查询学生
java·spring boot·后端
酷爱码5 小时前
Spring Boot项目中JSON解析库的深度解析与应用实践
spring boot·后端·json
java干货6 小时前
虚拟线程与消息队列:Spring Boot 3.5 中异步架构的演进与选择
spring boot·后端·架构
武昌库里写JAVA9 小时前
iview Switch Tabs TabPane 使用提示Maximum call stack size exceeded堆栈溢出
java·开发语言·spring boot·学习·课程设计
小白杨树树9 小时前
【WebSocket】SpringBoot项目中使用WebSocket
spring boot·websocket·网络协议
clk660716 小时前
Spring Boot
java·spring boot·后端
爱敲代码的TOM16 小时前
基于JWT+SpringSecurity整合一个单点认证授权机制
spring boot