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接口详细参数
- 通过构造参数获取系统敏感信息
修复建议
- 配置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是服务注册和发现组件,未授权访问会泄露注册的服务信息。
漏洞检测
访问以下路径:
/eureka/
或尝试添加请求头:
X-Forwarded-For: 127.0.0.1
漏洞危害
- 泄露注册的服务信息
- 与其他漏洞组合利用(如与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项目中常见的未授权访问漏洞多由配置不当引起,主要涉及:
- Druid监控页面未授权访问
- SwaggerUI API文档未授权访问
- Spring Boot Actuator端点未授权访问
- Spring Eureka服务注册信息未授权访问
防护措施应重点关注:
- 为管理界面添加认证
- 配置IP访问限制
- 禁用不必要的功能
- 生产环境避免直接暴露敏感接口
通过合理配置和权限控制,可有效避免这些组件带来的安全风险。