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

JavaSec-SpringBoot框架

简介

Spring Boot是一个通过自动配置、嵌入式服务器和生产级功能,简化了Spring应用程序开发、配置和部署的框架,使开发者能够快速构建独立且易于部署的Java应用在其生态系统下,也存在一些相关组件的安全隐患,如Swagger UI可能导致敏感接口泄漏,Spring Boot Actuator可能暴露敏感端口,Druid可能面临未授权访问风险,以及Spring Cloud Gateway存在远程代码执行漏洞等

1.漏洞情景:Swagger UI 敏感接口泄漏

Swagger是一种用于描述API的开源框架,它使用OpenAPI规范来定义API的端点、请求、响应、模式等。Swagger接口泄露漏洞是指在使用Swagger描述API时,由于未正确配置访问控制或未实施安全措施,导致API接口被不授权的人员访问和利用,从而导致系统安全风险

return new Docket(DocumentationType.OAS_30).pathMapping("/").enable(swaggerProperties.getEnable())//生产禁用.apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage("top.whgojp"))//按包扫描,也可以扫描共同的父包,不会显示basic-error-controller.paths(PathSelectors.any()).build();
}
/*** API 页面上半部分展示信息*/
private ApiInfo apiInfo() {
return new ApiInfoBuilder().title(swaggerProperties.getTitle())//标题.description(swaggerProperties.getDescription())//描述.contact(new Contact(swaggerProperties.getAuthor(), swaggerProperties.getUrl(), swaggerProperties.getEmail()))//作者信息.version(swaggerProperties.getVersion())//版本号.build();
}

2.漏洞情景:SpringBoot Actuator 敏感端点泄漏

Spring Boot Actuator 是一个用于监控和管理 Spring Boot 应用程序的功能模块。它提供了一系列生产就绪的功能,帮助你了解应用程序的运行状况,以及在运行时对应用程序进行调整。Actuator 使用了 Spring MVC 来暴露各种 HTTP 或 JMX 端点,通过这些端点你可以获取到应用程序的运行信息,如健康状态、指标、线程 dump、环境变量等

management:# 端点信息接口使用的端口,为了和主系统接口使用的端口进行分离server:port: 8080# 端点健康情况,默认值"never",设置为"always"可以显示硬盘使用情况和线程情况endpoint:health:show-details: always# 设置端点暴露的哪些内容,默认["health","info"],设置"*"代表暴露所有可访问的端点endpoints:web:exposure:include: '*'base-path: /sys/actuator// 相关端点信息
路径          描述          默认启用
auditevents  显示当前应用程序的审计事件信息  Yes
beans  显示一个应用中所有Spring Beans的完整列表  Yes
conditions  显示配置类和自动配置类(configuration and auto-configuration  classes)的状态及它们被应用或未被应用的原因configprops  显示一个所有@ConfigurationProperties的集合列表  Yes
env  显示来自Spring的 ConfigurableEnvironment的属性  Yes
flyway  显示数据库迁移路径,如果有的话  Yes
health  显示应用的健康信息(当使用一个未认证连接访问时显示一个简单  的’status’,使用认证连接访问则显示全部信息详情)info  显示任意的应用信息  Yes
liquibase  展示任何Liquibase数据库迁移路径,如果有的话  Yes
metrics  展示当前应用的metrics信息  Yes
mappings  显示一个所有@RequestMapping路径的集合列表  Yes
scheduledtasks  显示应用程序中的计划任务  Yes
sessions  允许从Spring会话支持的会话存储中检索和删除(retrieval and deletion)  用户会话。使用Spring Session对反应性Web应用程序的支持时不可用。shutdown  允许应用以优雅的方式关闭(默认情况下不启用)  No
threaddump  执行一个线程dump  Yes
heapdump  返回一个GZip压缩的hprof堆dump文件  Yes
jolokia  通过HTTP暴露JMX beans(当Jolokia在类路径上时,WebFlux不可用)  Yes
logfile  返回日志文件内容(如果设置了logging.file或logging.path属性的话),支持使用HTTP Range头接收日志文件内容的部分信息  Yes
prometheus  以可以被Prometheus服务器抓取的格式显示metrics信息  Yes

3.漏洞情景:Druid 配置不当

Apache Druid 是阿里开源的高性能连接池和实时分析分布式数据存储系统,专为大规模时序数据和事件流分析设计,具有快速查询、低延迟写入及横向扩展能力在导入Druid依赖时,没有在application.yml中添加配置(或忘记配置账号密码),此时Druid可以未授权访问,攻击者可直接获取websession信息,进行session爆破,以及通过weburi获取敏感信息路径,进行Fuzz攻击

druid:...filters: stat,log4j     # wall 这里关闭sql防火墙stat-view-servlet:enabled: trueurl-pattern: /druid/*
#        login-username: admin
#        login-password: adminreset-enable: false# 防火墙配置
#      wall:
#        config:
#          multi-statement-allow: false

相关文章:

  • Python 接口:从协议到抽象基 类(定义并使用一个抽象基类)
  • go语言map扩容
  • 数据结构测试模拟题(4)
  • PySide6 GUI 学习笔记——常用类及控件使用方法(多行文本控件QTextEdit)
  • 1.认识Spring
  • 第3章:图数据模型与设计
  • 运行示例程序和一些基本操作
  • [ACTF2020 新生赛]Include 1(php://filter伪协议)
  • AI数据分析在体育中的应用:技术与实践
  • 从零设计一个智能英语翻译API:架构与实现详解
  • 计算机组成与体系结构:补码数制一(Complementary Number Systems)
  • 信息最大化(Information Maximization)
  • 大模型在创伤性脑出血全周期预测与诊疗方案中的应用研究
  • leetcode刷题日记——二叉搜索树中第 K 小的元素
  • 从认识AI开始-----AutoEncoder:生成模型的起点
  • Web前端基础
  • ELK日志管理框架介绍
  • XSS(跨站脚本攻击)详解
  • 对称哈希连接实现
  • ECharts 提示框(tooltip)居中显示位置的设置技巧
  • 网上做任务赚钱网站有哪些/seo服务外包报价
  • 护肤网站的功能设计/长沙网站定制
  • 沂源放心企业网站建设方案报价/软件推广的渠道是哪里找的
  • app产品网站建设/二级域名网站查询入口
  • 上海建设网站浦东新区污水管网工程/深圳网络营销推广招聘网
  • 推荐聊城做网站的公司/百度关键词排名神器