Web开发-JavaEE应用SpringBoot栈ActuatorSwaggerHeapDump提取自动化
知识点:
1、安全开发-JavaEE-常见依赖-Actuator&Swagger
2、安全开发-JavaEE-安全问题-配置安全&接口测试
一、演示案例-WEB开发-JavaEE-监控依赖-SpringBoot&Actuator&配置安全
SpringBoot Actuator
模块提供了生产级别的功能,比如健康检查,审计,指标收集,HTTP
跟踪等,帮助我们监控和管理Spring Boot
应用。
1、引入依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
2、配置监控
暴露-基于application.properties配置文件
management.endpoints.web.exposure.include=*
暴露-基于application.yml配置文件(有的应用用这个)
management:
endpoints:
web:
exposure:
include: '*'
安全配置-application.properties配置文件
management.endpoint.env.enabled=false
management.endpoint.heapdump.enabled=false
安全配置-application.yml配置文件(有的应用用这个)
management:
endpoint:
heapdump:
enabled: false #启用接口关闭
env:
enabled: false #启用接口关闭
3、图像化监控Server&Client端界面
Server:引入Server依赖-开启
@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依赖版本
<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&接口测试
Swagger是当下比较流行的实时接口文档生成工具。接口文档是当前前后端分离项目中必不可少的工具,在前后端开发之前,后端要先出接口文档,前端根据接口文档来进行项目的开发,双方开发结束后在进行联调测试。
简单来说就是用来调试接口用的,在WEB页面进行调试。
参考:https://blog.csdn.net/lsqingfeng/article/details/123678701
1、引入依赖
<--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>
<--3.0.0版本-->
<dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.0</version>
</dependency>
2、配置访问
application.properties配置文件
spring.mvc.pathmatch.matching-strategy=ant-path-matcher
application.yml配置文件(有些应用会用这个文件)
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
泄漏应用接口:用户登录,信息显示,上传文件等
可用于对未授权访问,信息泄漏,文件上传等安全漏洞的测试.
本地环境测试
互联网环境测试