当前位置: 首页 > 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=8889spring.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=7777spring.datasource.url=jdbc:mysql://localhost:3306/demo01
spring.datasource.name=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Drivermanagement.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=7777spring.datasource.url=jdbc:mysql://localhost:3306/demo01
spring.datasource.name=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Drivermanagement.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")@ResponseBodypublic String getdata(@RequestParam String name){return "get have data " +name;}@PostMapping("/postdata")@ResponseBodypublic 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联动

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

相关文章:

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

时间轴&#xff1a; Java知识点&#xff1a; 功能&#xff1a;数据库操作&#xff0c;文件操作&#xff0c;序列化数据&#xff0c;身份验证&#xff0c;框架开发&#xff0c;第三方组件使用等. 框架库&#xff1a;MyBatis&#xff0c;SpringMVC&#xff0c;SpringBoot&#xf…...

浏览器JS打不上断点,一点就跳到其他文件里。浏览器控制台 js打断点,指定的位置打不上断点,一打就跳到其他地方了。

关闭JavaScript 源代码映射&#xff0c;F12开发者模式 设置->偏好设置->源代码/来源->JavaScript 源代码映射。 肯定不是这个原因导致的&#xff0c;但这个办法可以暂时解决问题&#xff0c;点完这个东西就隐藏了webpack&#xff0c;有懂的来讲讲。 又浪费一个小时…...

conda环境管理 kernel注册到jupyter notebook

本文核心目的&#xff1a;解决jupyter notebook找不到自己想要的指定conda环境 首先安装anaconda&#xff0c;在win搜索框打开anaconda prompt 按下ctrlc终止操作的时间很长。需要输入y来确认操作。 国内镜像源不能使用代理服务访问。要尝试代理服务的打开与关闭 下面是cond…...

【SpringBoot】【log】 自定义logback日志配置

前言&#xff1a;默认情况下&#xff0c;SpringBoot内部使用logback作为系统日志实现的框架&#xff0c;将日志输出到控制台&#xff0c;不会写到日志文件。如果在application.properties或application.yml配置&#xff0c;这样只能配置简单的场景&#xff0c;保存路径、日志格…...

15.7 LangChain 版智能销售顾问实战:构建企业级知识驱动型对话系统

LangChain 版智能销售顾问实战:构建企业级知识驱动型对话系统 关键词:LangChain 销售系统、知识图谱集成、对话状态管理、生产级部署、多链协同优化 1. LangChain 销售系统架构设计 1.1 模块化架构全景图 #mermaid-svg-42MLuD3aMcpX0y8c {font-family:"trebuchet ms&q…...

计算机网络基础:揭开网络世界的神秘面纱

计算机网络基础&#xff1a;揭开网络世界的神秘面纱 前言一、计算机网络的定义与基本概念1.1 计算机网络的定义1.2 计算机网络的基本组成 二、计算机网络的分类2.1 按地域范围分类2.2 按拓扑结构分类 三、计算机网络体系结构3.1 OSI 参考模型3.2 TCP/IP 参考模型 四、网络通信协…...

工会考试知识点分享

工会考试涵盖工会基础知识、劳动法及相关法律法规、时政等内容&#xff0c;以下是一些常见的知识点分享&#xff1a; 工会基础知识 工会的性质与职能&#xff1a;工会是职工自愿结合的工人阶级的群众组织&#xff0c;基本职责是维护职工合法权益&#xff0c;同时还具有组织、…...

az devops login报错:Failed to authenticate using the supplied token.

PowerShell&#xff0c;az devops login报错&#xff1a; Failed to authenticate using the supplied token. 检查了一下PAT token是对的。 检查命令&#xff1a; az devops login --organization https://dev.azure.com/xxxxxxxx/ 乍一看好像没问题问题&#xff0c;然后想…...

Halcon图像预处理算子 sobel算子、傅里叶变换算子、卷积算子

滤波类型算子适用噪声特点均值滤波mean_image高斯噪声平滑均匀&#xff0c;可能额模糊边缘中值滤波median_image椒盐噪声保留边缘&#xff0c;抑制脉冲噪声高斯滤波gauss_filter高斯噪声加权平均&#xff0c;边缘更平滑 均值滤波 mean_image(Image,ImageMean,MaskWidth,MaskHe…...

Java Web应用中获取客户端的真实IP地址

Java Web应用中获取客户端的真实IP地址,尤其在存在代理服务器的情况下。 代码示例: public static String getClientIP(HttpServletRequest request) {String ip = parseCommaSeparatedIPs(request.getHeader("X-Forwarded-For"));if (isInvalid(ip)) {ip = pars…...

洛谷————P11559 【MX-X7-T0】[LSOT-3] 嗯欧哎

P11559 【MX-X7-T0】[LSOT-3] 嗯欧哎 题目背景 原题链接&#xff1a;MXOJ Next。 嗯欧哎是欧哎界的知名比赛。本题可以用来检验嗯欧哎是否发挥出了真实水平。 此名称纯属虚构&#xff0c;不影射任何现实中的比赛或机构的名称。如有雷同&#xff0c;纯属巧合。 题目描述 一…...

2020年SCI1区TOP:异质综合学习和动态多群体粒子群算法HCLDMS-PSO,深度解析+性能实测

目录 1.摘要2.改进策略3.结果展示4.参考文献5.代码获取 1.摘要 本文提出了一种异质综合学习和动态多群体粒子群算法&#xff08;HCLDMS-PSO&#xff09;&#xff0c;该算法在综合学习&#xff08;CL&#xff09;策略的基础上&#xff0c;通过利用整个种群的全局最优经验来生成…...

FinRobot:一个使用大型语言模型进行金融分析的开源AI代理平台

文章目录 前言一、生态系统1. 金融AI代理&#xff08;Financial AI Agents&#xff09;2. 金融大型语言模型&#xff08;Financial LLMs&#xff09;3. LLMOps4. 数据操作&#xff08;DataOps&#xff09;5. 多源LLM基础模型&#xff08;Multi-Source LLM Foundation Models&am…...

【windows driver】 开发环境简明安装教程

一、下载路径 https://learn.microsoft.com/en-us/windows-hardware/drivers/other-wdk-downloads 二、安装步骤&#xff1a; 1、安装Visual Studio IDE 笔者建议安装最新版本&#xff0c;可以向下兼容。发文截止到目前&#xff0c;VS2022是首选&#xff0c;当前笔者由于项…...

强制完整性级别(MIL)和用户账户控制(UAC)的联系与区别

强制完整性级别&#xff08;MIL&#xff09; 和 用户账户控制&#xff08;UAC&#xff09; 都是 Windows 操作系统中的安全机制&#xff0c;旨在增强系统的安全性并防止恶意软件和攻击者在系统中获得更高的权限。尽管它们有共同的目标&#xff0c;但它们的工作原理、应用范围和…...

性能附录:如何计算并发用户数(摘自高楼老师《性能30讲》)

高楼老师《性能30讲》: 性能测试实战30讲-极客时间 感兴趣的同学可以去读一下&#xff0c;个人感觉写的非常好 目录 什么是并发? 在线用户数、并发用户数怎么计算 总结 什么是并发? 我们假设上图中的这些小人是严格按照这个逻辑到达系统的&#xff0c;那显然&#xff0c;…...

视频推拉流EasyDSS点播平台云端录像播放异常问题的排查与解决

EasyDSS视频直播点播平台是一个功能全面的系统&#xff0c;提供视频转码、点播、直播、视频推拉流以及H.265视频播放等一站式服务。该平台与RTMP高清摄像头配合使用&#xff0c;能够接收无人机设备的实时视频流&#xff0c;实现无人机视频推流直播和巡检等多种应用。 最近&…...

【Python系列】Python 连接 PostgreSQL 数据库并查询数据

???欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老…...

辛格迪客户案例 | 甫康(上海)健康科技有限责任公司药物警戒管理系统(PVS)项目

01 案例企业 甫康(上海)健康科技有限责任公司&#xff08;简称“甫康”&#xff09;该公司成立于2015年11月3日。公司的核心团队由来自中国和国外顶级制药公司的专业人士组成&#xff0c;与中国科学院上海药物研究所等知名研究机构保持紧密合作。此外&#xff0c;甫康药业还与…...

重新审视 ChatGPT 和 Elasticsearch:第 2 部分 - UI 保持不变

作者&#xff1a;来自 Elastic Jeff Vestal 本博客在第 1 部分的基础上进行了扩展&#xff0c;介绍了基于 RAG 的搜索系统的功能齐全的 Web UI。最后&#xff0c;你将拥有一个将检索、搜索和生成过程结合在一起的工作界面&#xff0c;同时使事情易于调整和探索。 不想读完整个内…...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增&#xff1a;通道注意力模块&#xff08;SE模块&#xff09; class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

条件运算符

C中的三目运算符&#xff08;也称条件运算符&#xff0c;英文&#xff1a;ternary operator&#xff09;是一种简洁的条件选择语句&#xff0c;语法如下&#xff1a; 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true&#xff0c;则整个表达式的结果为“表达式1”…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

微服务商城-商品微服务

数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 &#x1f4dd; 在上一篇文章中&#xff0c;我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源&#xff0c;方便后续将资源打包到一个可执行文件中。 2.embed介绍 &#x1f3af; Go 1.16 引入了革命性的 embed 包&#xff0c;彻底改变了静态资源管理的…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)

在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马&#xff08;服务器方面的&#xff09;的原理&#xff0c;连接&#xff0c;以及各种木马及连接工具的分享 文件木马&#xff1a;https://w…...

Selenium常用函数介绍

目录 一&#xff0c;元素定位 1.1 cssSeector 1.2 xpath 二&#xff0c;操作测试对象 三&#xff0c;窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四&#xff0c;弹窗 五&#xff0c;等待 六&#xff0c;导航 七&#xff0c;文件上传 …...

「全栈技术解析」推客小程序系统开发:从架构设计到裂变增长的完整解决方案

在移动互联网营销竞争白热化的当下&#xff0c;推客小程序系统凭借其裂变传播、精准营销等特性&#xff0c;成为企业抢占市场的利器。本文将深度解析推客小程序系统开发的核心技术与实现路径&#xff0c;助力开发者打造具有市场竞争力的营销工具。​ 一、系统核心功能架构&…...