当前位置: 首页 > 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

http://www.xdnf.cn/news/922573.html

相关文章:

  • JAVA理论第三章-多线程
  • Python实例题:Python计算微积分
  • 2025年06月07日Github流行趋势
  • go语言学习 第9章:映射(Map)
  • 推客系统小程序开发:告别低效推广,开启精准获客新时代
  • C++课设:实现简易文件加密工具(凯撒密码、异或加密、Base64编码)
  • 25N60-ASEMI电源管理领域专用25N60
  • 基于ROS2,撰写python脚本,根据给定的舵-桨动力学模型实现动力学更新
  • 【CSS-4】掌握CSS文字样式:从基础到高级技巧
  • Qt/C++学习系列之Excel使用记录
  • 第二部分 方法,还是方法——“信管法则”的四大要点
  • 高保真组件库:数字输入框
  • FlashAttention 公式推导
  • [AI绘画]sd学习记录(二)文生图参数进阶
  • Rapidio门铃消息FIFO溢出机制
  • TongWeb7.0动态密钥说明
  • 实战:子组件获取父组件订单信息
  • 【学习笔记】如何给软件加数字签名
  • 在 Windows 11 或 10 上将 Git 升级到最新版本的方法
  • 【Linux】LInux下第一个程序:进度条
  • 十一、【ESP32开发全栈指南: TCP通信服务端】
  • 1-3 Linux-虚拟机(2025.6.7学习篇- mac版本)
  • Sentry 接口返回 Status Code 429 Too Many Requests
  • 【优选算法】C++滑动窗口
  • 在ubuntu等linux系统上申请https证书
  • Redis内存淘汰策略
  • redis集群
  • [最全总结]城市灾害应急管理系统
  • Linux虚拟化技术:从KVM到容器的轻量化革命
  • Nodejs工程化实践:构建高性能前后端交互系统