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

第39天:安全开发-JavaEE应用SpringBoot框架Actuator监控泄漏Swagger自动化

时间轴:

Java知识点:

功能:数据库操作,文件操作,序列化数据,身份验证,框架开发,第三方组件使用等.

框架库:MyBatis,SpringMVC,SpringBoot,Shiro,Log4j,FastJson等

技术:Servlet,Listen,Filter,Interceptor,JWT,AOP,反射机制待补充

安全:SQL注入,RCE执行,反序列化,脆弱验证,未授权访问,待补充

安全:原生开发安全,第三方框架安全,第三方组件安全等,架构分析,待补充

知识点:

1、JavaEE-SpringBoot-监控系统-Actuator
2、JavaEE-SpringBoot-接口系统-Swagger
3、JavaEE-SpringBoot-监控&接口&安全问题

Actutor断点图

演示案例:

SpringBoot-监控系统-Actuator

SpringBoot-接口系统-Swagger

安全案例-JVM 泄漏&接口自动化

#SpringBoot-监控系统-Actuator

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

1.创建一个新项目TestActuatorDemo:

2.勾选项目(使用Ops下的Spring Boot Actuator):
引入配置pom.xml:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

3.如果不配置Actuator,试着/actuator

注释掉application.properties

访问 localhost:8080/actuator
使用 JSON在线解析格式化验证 - JSON.cn:
试着访问看一下有什么:

4.配置actuator:

info.name=xiaodou
info.sex=gay
management.endpoints.web.exposure.include=*

通过Actutor断点图有时候可以访问到想要看的内容:

Spring Boot Actuator 漏洞复现合集_springboot actuator 漏洞-CSDN博客

安全问题

通常/actuator中的有些网址会泄露本机电脑数据。

图像化 Server&Client 端界面

Actuator服务端:

1.创建一个新项目TestActuatorServer:

2.勾选项目(这次选择服务端)

3.在启动程序上写上@EnableAdminServer

package cn.xiaodou.testactuatorserver;

import de.codecentric.boot.admin.server.config.EnableAdminServer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;




@EnableAdminServer
@SpringBootApplication
public class TestActuatorServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(TestActuatorServerApplication.class, args);
    }

}
修改服务端的配置文件application properties:
server.port=8888

Actuator客户端:

1.可以在TestActuatorServer下创建TestActuatorClient,勾选Client(略)
修改客户端的配置文件application properties:
# 应用服务 WEB 访问端口
server.port=8889

spring.boot.admin.client.url=http://127.0.0.1:8888
management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=always

访问http://127.0.0.1:8888

点击下面的地址点击c008ae29b2aa
得到以下页面(其实就是图形化展示刚才的env等)
若报错可以尝试换源。

安全问题heapdown:

常见问题heapdown:
heapdown可以理解为 整个项目打包的内存文件。

得到对应heapdump包可以使用工具进行分析:获取到配置信息(分析提取出敏感信息(配置帐号密码,接口信息 数据库 短信 云应用等配置)

演示案例:

heapdump

1.创建一个新项目TestActuatorDemo1:

2.勾选这4个项目

3.信息配置:

配置application propertis

server.port=7777

spring.datasource.url=jdbc:mysql://localhost:3306/demo01
spring.datasource.name=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

management.endpoint.health.show-details=always
management.endpoints.web.exposure.include=*

访问:http://127.0.0.1:7777/actuator/heapdump

方法一:

使用 JDumpSpider-1.1-SNAPSHOT-full.jar 对heapdump文件进行分析:

使用指令

 java -jar JDumpSpider-1.1-SNAPSHOT-full.jar heapdump

可以查看到本机泄露的文件: 

方法二:

可以在jvisualvm分析器中分析

安装jdk自带,文件搜索获取
如:D:\jdk1.8.0_112\bin\jvisualvm.exe

测试安装:JDK1.8_112
下载JDK:http://www.itmop.com/downinfo/136203.html

尝试访问/mappings

http://127.0.0.1:7777/actuator/mappings

 在此处可以找到相同的配置信息

 

其他利用见下文
Spring Boot Actuator 漏洞复现合集_springboot actuator 漏洞-CSDN博客
分析得到有一些组件(不安全的组件,如log4j

如何防止:
server.port=7777

spring.datasource.url=jdbc:mysql://localhost:3306/demo01
spring.datasource.name=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

management.endpoint.health.show-details=always
management.endpoints.web.exposure.include=*

management.endpoint.heapdump.enabled=false
management.endpoint.env.enabled=false

 SpringBoot-接口系统-Swagger

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

1.创建TestSwaggerDemo

2.进行勾选

3.引入依赖项目:

版本二:

阿里云适合两个版本,有些版本太高会不适合和。

<--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>

 配置项目:

启动项目:

package cn.xiadou.testswaggerdemo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@EnableSwagger2
@SpringBootApplication
public class TestSwaggerDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(TestSwaggerDemoApplication.class, args);
    }

}

 启动报错时候该如何解决:

在 application.properties中配置

 # 设置路径匹配策略为Ant路径匹配器 
spring.mvc.pathmatch.matching-strategy=ant-path-matcher

访问:

http://localhost:8002/swagger-ui.html

创建一个TestController:

package cn.xiaodi.testswaggerdemo.demos.web;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class TestController {

    @GetMapping("/getdata")
    @ResponseBody
    public String getdata(@RequestParam String name){
        return "get have data " +name;
    }

    @PostMapping("/postdata")
    @ResponseBody
    public String postdata(@RequestParam String name){
        return "post have data " +name;
    }
}

 发现网址中拥有TestController:

尝试改一下可以看到回显值:

版本三:

1.进行配置

<--3.0.0版本-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>

 2.可以在启动项进行@EnableOpenApi,也可以不用

3.尝试访问http://localhost:8002/swagger-ui/index.html

使用postman进行自动化操作

地址复制下面蓝色部分

点击run进入此页面

开始api自动化接口

还可以与burpsuite联动

本文章由李豆豆喵和番薯小羊卷~共同完成。

相关文章:

  • java八股文之框架
  • (转)Java单例模式(1)
  • Unity 运用正则表达式保留字符串中的中文英文字母和数字
  • 深入理解 QVectorQString:Qt 中动态数组的强大力量
  • 《机器学习数学基础》补充资料:LU分解
  • linux 命令getent 的使用指南
  • 第五章 数据库完整性
  • 【操作系统】同步与互斥
  • WPF中对滚动条进行平滑滚动
  • Spring Boot 3.x 基于 Redis 实现邮箱验证码认证
  • vulnhub靶场【kioptrix-4】靶机
  • 当生活被算法重塑:AI 对生活的多面影响
  • 齿轮制造的“精密心脏”:蜗杆状砂轮磨齿机探秘
  • 短跑怎么训练提高最快·棒球1号位
  • 蓝桥杯 之 填空题-位运算与循环
  • USRP6330-通用软件无线电平台
  • 《数据安全架构设计与实战》的目录
  • React学习笔记08
  • 使用 Ansys Discovery 高效创建角焊缝
  • 视频推拉流EasyDSS点播平台云端录像播放异常问题的排查与解决
  • 在万网申请的域名_需要把万网的账户密码给做网站的吗/sem技术培训
  • 苹果给第三方网站做图标/百度信息流广告平台
  • 高端品牌网站建设有哪些/百度图片搜索网页版
  • 08r2 搭建php网站/短链接生成器
  • 网站外链怎么看/百度下载app下载安装
  • 靠谱网站建设公司价格多少/沈阳头条今日头条新闻最新消息