JAVA常用组件未授权漏洞解析
字数 1724 2025-08-18 11:36:48

Java常用组件未授权漏洞解析与防护指南

前言

在Java项目中,监控类组件若未做好权限控制,可能导致敏感信息泄露甚至更严重的安全问题。本文将详细解析Java项目中常见的未授权访问漏洞,包括Druid、SwaggerUI、Spring Boot Actuator和Spring Eureka等组件,并提供检测方法与修复建议。

1. Druid未授权访问漏洞

漏洞描述

Druid是阿里巴巴提供的数据库连接池,具有监控SQL执行时间、Web URI请求、Session等功能。虽然Druid本身没有漏洞,但配置不当会导致未授权访问。

检测方法

访问以下URL路径:

/druid/index.html

若能无需登录直接访问Druid监控界面,则存在漏洞。

漏洞危害

  • 查看数据源、SQL监控、SQL防火墙等信息
  • 获取网站目录结构(Web监控)
  • 获取用户session(Session监控),可伪造用户登录
  • 查看Spring监控等敏感信息

修复建议

方法1:禁用监控页面

spring:
  datasource:
    druid:
      stat-view-servlet:
        enabled: false  # 禁用StatViewServlet

方法2:配置访问权限

spring:
  datasource:
    druid:
      stat-view-servlet:
        enabled: true
        reset-enable: false  # 禁用"Reset All"功能
        login-username: xxxx  # 设置用户名
        login-password: xxxxxxxx  # 设置密码
        allow: 127.0.0.1  # IP白名单
        deny: 10.0.0.1  # IP黑名单
        url-pattern: '/druid/*'  # 自定义访问路径

2. SwaggerUI未授权访问漏洞

漏洞描述

Swagger是用于生成、描述和可视化RESTful Web服务的框架。配置不当会导致API文档未授权访问,泄露系统API接口详情。

常见未授权访问路径

/api/api-docs
/api-docs/swagger.json
/api.html
/api/api-docs
/api/apidocs
/api/doc
/api/swagger
/api/swagger-ui
/api/swagger-ui.html
/api/swagger-ui.html//
...(完整列表见原文)

漏洞危害

  • 获取系统功能API接口详细参数
  • 通过构造参数获取系统敏感信息

修复建议

  1. 配置Swagger开启页面访问限制
  2. 排查接口是否存在敏感信息泄露(账号密码、SecretKey、OSS配置等)

3. Spring Boot Actuator未授权访问漏洞

漏洞描述

Actuator是Spring Boot提供的服务监控和管理中间件,错误配置端点可能导致系统信息泄露、XXE甚至RCE。

常见端点及功能

路径 描述
/autoconfig 自动配置报告
/beans 应用程序上下文全部Bean及关系
/env 全部环境属性
/configprops 配置属性如何注入Bean
/dump 线程活动快照
/health 应用程序健康指标
/info 应用程序定制信息
/mappings 全部URI路径与控制器映射
/metrics 应用程序度量信息
/shutdown 关闭应用程序
/trace HTTP请求跟踪信息

漏洞检测方法

1. 识别Spring Boot框架

  • 方法1:检查favicon.ico图标(默认绿色小叶子图标)
  • 方法2:触发4xx/5xx错误查看默认报错页面(Whitelabel Error Page)

2. 枚举执行器端点路径

将常见端点路径加入目录扫描工具字典进行扫描

高级利用方式

  1. 获取认证字段:通过/trace路径获取用户token、cookie
  2. 数据库凭证泄露:通过/env路径获取mysql、mangodb等配置信息
  3. Git项目地址泄露:通过/health路径探测
  4. 后台账号密码泄露:通过/heapdump路径获取内存信息

4. Spring Eureka未授权访问漏洞

漏洞描述

Eureka是服务注册和发现组件,未授权访问会泄露注册的服务信息。

漏洞检测

访问以下路径:

/eureka/

或尝试添加请求头:

X-Forwarded-For: 127.0.0.1

漏洞危害

  1. 泄露注册的服务信息
  2. 与其他漏洞组合利用(如与Actuator+XStream组合导致RCE)

修复建议

方法1:启用Spring Security认证

security:
  basic:
    enabled: true
  user:
    name: admin
    password: password

方法2:配置防火墙规则

eureka:
  server:
    allow-registry-override: true
    enable-self-preservation: false
    disable-self-registration: true
    firewall:
      allow:
        - 192.168.1.0/24
        - 127.0.0.1

方法3:生产环境建议

  • 使用VPN等安全通道访问
  • 避免直接暴露在公网

总结

Java项目中常见的未授权访问漏洞多由配置不当引起,主要涉及:

  1. Druid监控页面未授权访问
  2. SwaggerUI API文档未授权访问
  3. Spring Boot Actuator端点未授权访问
  4. Spring Eureka服务注册信息未授权访问

防护措施应重点关注:

  • 为管理界面添加认证
  • 配置IP访问限制
  • 禁用不必要的功能
  • 生产环境避免直接暴露敏感接口

通过合理配置和权限控制,可有效避免这些组件带来的安全风险。

Java常用组件未授权漏洞解析与防护指南 前言 在Java项目中,监控类组件若未做好权限控制,可能导致敏感信息泄露甚至更严重的安全问题。本文将详细解析Java项目中常见的未授权访问漏洞,包括Druid、SwaggerUI、Spring Boot Actuator和Spring Eureka等组件,并提供检测方法与修复建议。 1. Druid未授权访问漏洞 漏洞描述 Druid是阿里巴巴提供的数据库连接池,具有监控SQL执行时间、Web URI请求、Session等功能。虽然Druid本身没有漏洞,但配置不当会导致未授权访问。 检测方法 访问以下URL路径: 若能无需登录直接访问Druid监控界面,则存在漏洞。 漏洞危害 查看数据源、SQL监控、SQL防火墙等信息 获取网站目录结构(Web监控) 获取用户session(Session监控),可伪造用户登录 查看Spring监控等敏感信息 修复建议 方法1:禁用监控页面 方法2:配置访问权限 2. SwaggerUI未授权访问漏洞 漏洞描述 Swagger是用于生成、描述和可视化RESTful Web服务的框架。配置不当会导致API文档未授权访问,泄露系统API接口详情。 常见未授权访问路径 漏洞危害 获取系统功能API接口详细参数 通过构造参数获取系统敏感信息 修复建议 配置Swagger开启页面访问限制 排查接口是否存在敏感信息泄露(账号密码、SecretKey、OSS配置等) 3. Spring Boot Actuator未授权访问漏洞 漏洞描述 Actuator是Spring Boot提供的服务监控和管理中间件,错误配置端点可能导致系统信息泄露、XXE甚至RCE。 常见端点及功能 | 路径 | 描述 | |------|------| | /autoconfig | 自动配置报告 | | /beans | 应用程序上下文全部Bean及关系 | | /env | 全部环境属性 | | /configprops | 配置属性如何注入Bean | | /dump | 线程活动快照 | | /health | 应用程序健康指标 | | /info | 应用程序定制信息 | | /mappings | 全部URI路径与控制器映射 | | /metrics | 应用程序度量信息 | | /shutdown | 关闭应用程序 | | /trace | HTTP请求跟踪信息 | 漏洞检测方法 1. 识别Spring Boot框架 方法1 :检查favicon.ico图标(默认绿色小叶子图标) 方法2 :触发4xx/5xx错误查看默认报错页面(Whitelabel Error Page) 2. 枚举执行器端点路径 将常见端点路径加入目录扫描工具字典进行扫描 高级利用方式 获取认证字段 :通过/trace路径获取用户token、cookie 数据库凭证泄露 :通过/env路径获取mysql、mangodb等配置信息 Git项目地址泄露 :通过/health路径探测 后台账号密码泄露 :通过/heapdump路径获取内存信息 4. Spring Eureka未授权访问漏洞 漏洞描述 Eureka是服务注册和发现组件,未授权访问会泄露注册的服务信息。 漏洞检测 访问以下路径: 或尝试添加请求头: 漏洞危害 泄露注册的服务信息 与其他漏洞组合利用(如与Actuator+XStream组合导致RCE) 修复建议 方法1:启用Spring Security认证 方法2:配置防火墙规则 方法3:生产环境建议 使用VPN等安全通道访问 避免直接暴露在公网 总结 Java项目中常见的未授权访问漏洞多由配置不当引起,主要涉及: Druid监控页面未授权访问 SwaggerUI API文档未授权访问 Spring Boot Actuator端点未授权访问 Spring Eureka服务注册信息未授权访问 防护措施应重点关注: 为管理界面添加认证 配置IP访问限制 禁用不必要的功能 生产环境避免直接暴露敏感接口 通过合理配置和权限控制,可有效避免这些组件带来的安全风险。