第39天:安全开辟-JavaEE应用&SpringBoot框架&Actuator监控走漏&Swagger自 ...

打印 上一主题 下一主题

主题 913|帖子 913|积分 2739

时间轴:


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:   
  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-actuator</artifactId>
  4. </dependency>
复制代码
3.如果不配置Actuator,试着/actuator

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

4.配置actuator:

  1. info.name=xiaodou
  2. info.sex=gay
  3. management.endpoints.web.exposure.include=*
复制代码

通过Actutor断点图有时间可以访问到想要看的内容:
Spring Boot Actuator 漏洞复现合集_springboot actuator 漏洞-CSDN博客
安全题目



通常/actuator中的有些网址会走漏本机电脑数据。
图像化 Server&Client 端界面

Actuator服务端:

1.创建一个新项目TestActuatorServer:


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

3.在启动程序上写上@EnableAdminServer
  1. package cn.xiaodou.testactuatorserver;
  2. import de.codecentric.boot.admin.server.config.EnableAdminServer;
  3. import org.springframework.boot.SpringApplication;
  4. import org.springframework.boot.autoconfigure.SpringBootApplication;
  5. @EnableAdminServer
  6. @SpringBootApplication
  7. public class TestActuatorServerApplication {
  8.     public static void main(String[] args) {
  9.         SpringApplication.run(TestActuatorServerApplication.class, args);
  10.     }
  11. }
复制代码
  
  修改服务端的配置文件application properties:

  
  1. server.port=8888
复制代码
   
   Actuator客户端:

   1.可以在TestActuatorServer下创建TestActuatorClient,勾选Client(略)     
  修改客户端的配置文件application properties:

  
  1. # 应用服务 WEB 访问端口
  2. server.port=8889
  3. spring.boot.admin.client.url=http://127.0.0.1:8888
  4. management.endpoints.web.exposure.include=*
  5. 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
  1. server.port=7777
  2. spring.datasource.url=jdbc:mysql://localhost:3306/demo01
  3. spring.datasource.name=root
  4. spring.datasource.password=123456
  5. spring.datasource.driver-class-name=com.mysql.jdbc.Driver
  6. management.endpoint.health.show-details=always
  7. management.endpoints.web.exposure.include=*
复制代码
访问:http://127.0.0.1:7777/actuator/heapdump

方法一:

使用 JDumpSpider-1.1-SNAPSHOT-full.jar 对heapdump文件举行分析:
使用指令
  1. 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

怎样防止:

  1. server.port=7777
  2. spring.datasource.url=jdbc:mysql://localhost:3306/demo01
  3. spring.datasource.name=root
  4. spring.datasource.password=123456
  5. spring.datasource.driver-class-name=com.mysql.jdbc.Driver
  6. management.endpoint.health.show-details=always
  7. 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.引入依赖项目:
版本二:

阿里云适合两个版本,有些版本太高会不适合和。
  1. <--2.9.2版本-->
  2. <dependency>
  3. <groupId>io.springfox</groupId>
  4. <artifactId>springfox-swagger2</artifactId>
  5. <version>2.9.2</version>
  6. </dependency>
  7. <dependency>
  8. <groupId>io.springfox</groupId>
  9. <artifactId>springfox-swagger-ui</artifactId>
  10. <version>2.9.2</version>
  11. </dependency>
复制代码
 配置项目:
启动项目:
  1. package cn.xiadou.testswaggerdemo;
  2. import org.springframework.boot.SpringApplication;
  3. import org.springframework.boot.autoconfigure.SpringBootApplication;
  4. import springfox.documentation.swagger2.annotations.EnableSwagger2;
  5. @EnableSwagger2
  6. @SpringBootApplication
  7. public class TestSwaggerDemoApplication {
  8.     public static void main(String[] args) {
  9.         SpringApplication.run(TestSwaggerDemoApplication.class, args);
  10.     }
  11. }
复制代码
 启动报错时间该怎样解决:

在 application.properties中配置
  1.  # 设置路径匹配策略为Ant路径匹配器
  2. spring.mvc.pathmatch.matching-strategy=ant-path-matcher
复制代码
访问:

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

创建一个TestController:
  1. package cn.xiaodi.testswaggerdemo.demos.web;
  2. import org.springframework.stereotype.Controller;
  3. import org.springframework.web.bind.annotation.GetMapping;
  4. import org.springframework.web.bind.annotation.PostMapping;
  5. import org.springframework.web.bind.annotation.RequestParam;
  6. import org.springframework.web.bind.annotation.ResponseBody;
  7. @Controller
  8. public class TestController {
  9.     @GetMapping("/getdata")
  10.     @ResponseBody
  11.     public String getdata(@RequestParam String name){
  12.         return "get have data " +name;
  13.     }
  14.     @PostMapping("/postdata")
  15.     @ResponseBody
  16.     public String postdata(@RequestParam String name){
  17.         return "post have data " +name;
  18.     }
  19. }
复制代码
 发现网址中拥有TestController:

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

版本三:

1.举行配置
  1. <--3.0.0版本-->
  2. <dependency>
  3. <groupId>io.springfox</groupId>
  4. <artifactId>springfox-boot-starter</artifactId>
  5. <version>3.0.0</version>
  6. </dependency>
复制代码
 2.可以在启动项举行@EnableOpenApi,也可以不用
3.尝试访问http://localhost:8002/swagger-ui/index.html
使用postman举行主动化操作


地址复制下面蓝色部分

点击run进入此页面

开始api主动化接口

还可以与burpsuite联动

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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

西河刘卡车医

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表