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

本地环境测试












互联网环境测试


相关推荐
9527!到!11 小时前
Springboot @value读取配置参数踩坑&推荐解决方案
java·spring boot·spring
十年Java程序媛11 小时前
Java 面试常问 this、super:构造方法调用顺序避坑
java·开发语言·spring boot·面试·个人开发
小蒜学长14 小时前
基于SpingBoot+Vue的定向越野赛事管理系统的设计与开发(代码+数据库+LW)
java·前端·spring boot·后端·前后端分离·定向越野赛事
RuoyiOffice14 小时前
项目预算和交付日期变了,为什么不能直接改台账?
spring boot·项目管理·vue3·flowable·业务建模·ruoyi office·项目变更
小蒜学长14 小时前
基于过程性评价的ai助学平台(代码+数据库+LW)
java·spring boot·后端·微信小程序·过程性评价
博风15 小时前
使用Spring官网下载Springboot骨架
java·spring boot·spring
木井巳16 小时前
【JavaEE】SpringBoot 统一功能处理: 拦截器、统一返回与全局异常
java·spring boot·后端·spring·java-ee
Thomas.Sir16 小时前
第6课:SpringBoot4.x 核心注解全解:Component、Bean、Scope、Lazy等IOC相关注解
java·spring boot
paopaokaka_luck16 小时前
美食推荐系统(协同过滤算法推荐、AI助手、HanLP中文分词、 ECharts可视化分析、菜谱学习与话题交流)
java·spring boot·mysql·tomcat·echarts
相隔一个图书馆的距离17 小时前
单测(三)Spring Boot 3.5.6 && @MockitoSpyBean / AOP / 循环依赖:静默吞错与运行期 NPE
java·spring boot·后端