时间轴:
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:
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=falsemanagement.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联动
本文章由李豆豆喵和番薯小羊卷~共同完成。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |