发布于12月5日12月5日 ## 前言 在Java项目中,经常会使用一些监控组件来监控系统的状态。如果这些组件控制不当,公共网络可以任意访问它们,敏感信息就会被泄露,造成更严重的危害。今天我们就来看看都有哪些组件。 该系列共有10 篇关于Java 安全性的文章。如果您有兴趣,可以阅读。后续我们会继续发布关于Java安全的内容,比如Java内存马、Weblogic系列、spring框架系统漏洞等。 [java安全基础知识-java反射](articles/web/355185.html) [java安全基础知识-类加载机制](articles/web/356283.html) [java安全基础知识-spring框架](articles/web/357828.html) [java exec命令执行issues](articles/web/356831.html) [JNDI注入详情](articles/web/358196.html) [JNDI注入高版本绕过方法](articles/web/358310.html) [SPEL注入详解](articles/web/365408.html) [java反序列化漏洞详解](articles/web/367585.html) [java安全fastjson反序列化详解】(articles/web/378895.html)【java安全\\| Thymeleaf 模板注入漏洞](articles/web/381634.html) **由于本人水平有限,文章中可能存在一些错误。欢迎您指正。我很感激。如果您有什么好的想法,欢迎分享哦~~** java 项目中可能会创建未经授权的组件。 ## Druid 未授权漏洞 Druid是阿里巴巴数据库出品的数据库连接池,专为监控而设计。 Druid提供监控SQL执行时间、监控Web URI请求、会话监控等监控功能。首先,Druid没有任何漏洞。然而,如果开发人员配置不当,可能会出现未经授权的访问。 检测与利用: 直接添加到网站的URL: /druid/index.html 如果无需登录即可登录Druid监控界面,则说明该网站存在Druid未授权访问漏洞! 从这里可以看到,Druid数据监控界面包含了数据源、sql监控、sql防火墙、web应用、url监控、session监控、spring监控等信息。您可以详细监控网站情况并获取敏感信息。在Web监控中,您可以获取整个网站的目录。在会话监控中,可以获取网站用户的会话,从而伪造用户会话进行登录! ###修复建议 方法一:将StatViewServlet(监控页面)设置为false 方法二:为druid网页设置账号密码,增加druid的访问权限。 ```` 弹簧: 数据源: 德鲁伊: 最大活动: 10 最小空闲: 1 统计视图servlet: # 是否启用StatViewServlet(监控页面),默认true-启动,false-不启动 已启用: 真 # 禁用HTML 页面上的“全部重置”功能 重置启用: false #设置账户名(增加登录权限) 登录用户名: xxxx # 设置账户密码 登录密码:xxxxx xxx # IP白名单(如果未配置或为空,则允许所有访问) 允许: 127.0.0.1 # IP黑名单(常用时,deny优先于allow) 拒绝: 10.0.0.1 # 自定义德鲁伊连接 url-pattern: '/druid/*' ```` ## SwaggerUI 未授权漏洞 Swagger 是一个标准化且完整的框架,用于生成、描述、调用和可视化RESTful 风格的Web 服务。总体目标是让客户端和文件系统以与服务器相同的速度更新。相关方法、参数和模型紧密集成到服务器端代码中,使API 始终保持同步。 Swagger-UI会根据开发者在代码中的设置自动生成API描述文档。如果存在相关配置缺陷,攻击者可以在未经授权的情况下查看Swagger接口文档,获取系统功能API接口的详细参数,然后构造参数包,通过echo获取系统大量敏感信息。 Swagger未授权访问地址默认路径如下: ```` /api /api-文档 /api-docs/swagger.json /api.html /api/api-文档 /api/api文档 /api/文档 /api/招摇 /api/swagger-ui /api/swagger-ui.html /api/swagger-ui.html/ /api/swagger-ui.json /api/swagger.json /api/招摇/ /api/swagger/ui /api/swagger/ui/ /api/swaggerui /api/swaggerui/ /api/v1/ /api/v1/api-docs /api/v1/apidocs /api/v1/招摇 /api/v1/swagger-ui /api/v1/swagger-ui.html /api/v1/swagger-ui.json /api/v1/swagger.json /api/v1/招摇/ /api/v2 /api/v2/api-文档 /api/v2/apidocs /api/v2/招摇 /api/v2/swagger-ui /api/v2/swagger-ui.html /api/v2/swagger-ui.json /api/v2/swagger.json /api/v2/招摇/ /api/v3 /api文档 /apidocs/swagger.json /doc.html /文档/ /druid/index.html /graphql /libs/swaggerui /libs/swaggerui/ /spring-security-oauth-resource/swagger-ui.html /spring-security-rest/api/swagger-ui.html /sw/swagger-ui.html /昂首阔步 /swagger-资源 /swagger-资源/配置/安全 /swagger-资源/配置/安全/ /swagger-资源/配置/ui /swagger-资源/配置/ui/ /swagger-ui /swagger-ui.html /swagger-ui.html#/api-内存控制器 /swagger-ui.html/ /swagger-ui.json /swagger-ui/swagger.json /swagger.json /swagger.yml /大摇大摆/ /swagger/index.html /swagger/static/index.html /swagger/swagger-ui.html /招摇/用户界面/ /Swagger/ui/索引 /swagger/ui/索引 /swagger/v1/swagger.json /swagger/v2/swagger.json /template/swagger-ui.html /用户/swagger-ui.html /用户/swagger-ui.html/ /v1.x/swagger-ui.html /v1/api-文档 /v1/swagger.json /v2/api-文档 /v3/api-文档 ```` 您可以将上述默认路径添加到dirsearch等目录扫描工具的字典中,然后对目标网站进行扫描和测试。 下图所示页面为 错误修复 1. 配置Swagger启用页面访问限制。 2. 检查接口是否存在敏感信息泄露(例如:账户密码、SecretKey、OSS配置等),如有,请进行相应整改。 ## Spring boot Actuator未授权漏洞 Actuator是Spring Boot提供的服务监控和管理中间件。当Spring Boot 应用程序运行时,它会自动将多个端点注册到路由进程中。由于这些端点的配置错误,可能会导致系统信息泄露、XXE、甚至RCE等安全问题。 端点描述 路径 描述 /自动配置 提供自动配置报告,记录哪些自动配置条件通过,哪些失败 /豆类 描述应用程序上下文中的所有bean 及其关系 /环境 获取所有环境属性 /配置属性 描述如何将配置属性(包括默认值)注入到bean中 /转储 获取线程活动的快照 /健康 报告应用程序的健康指标,这些值由HealthIndicator 的实现类提供 /信息 获取应用的自定义信息,由info开头的属性提供 /映射 描述所有URI 路径及其到控制器(包括执行器端点)的映射 /指标 报告各种应用程序指标,例如内存使用情况和HTTP 请求计数 /关机 关闭应用程序,要求将endpoints.shutdown.enabled设置为true /跟踪 提供基本的HTTP 请求跟踪信息(时间戳、HTTP 标头等) ### 漏洞发现 一般分为两步 1\.识别当前Web应用使用的框架为springboot框架; 2\.枚举执行器端点路径; 1\.识别当前Web应用使用的框架为springboot框架。判断方法主要有两种: ① 通过Web应用程序网页标签的图标(favicon.ico);如果Web应用开发者没有修改SpringBoot Web应用的默认图标,那么进入应用首页后可以看到如下默认的绿色小图标: 这个绿色小图标是spring框架下的默认图标。虽然这个图标不能100%确认当前的Web应用程序使用的是SpringBoot框架,但基本上可以80%确认Web应用程序是使用SpringBoot框架开发的(毕竟SpringBoot框架确实太流行了)。 ②通过springboot框架默认的错误页面;如果Web应用开发者不修改springboot Web应用默认的4xx和5xx错误页面,那么当Web应用出现4xx或5xx错误时,会报如下错误(这里仅以404错误页面为例): 当出现上述错误页面时,可以确定当前Web应用使用的是springboot框架。 然后结合以上两种方式来判断当前web应用是否是springboot框架,就是访问不同的目录看是否有小绿叶图标,然后想办法在不同的目录下触发应用的4xx或5xx错误,看是否有Whitelabel Error Page错误。 2\.枚举执行器端点路径。这其实很简单。确认当前网站是springboot框架后,枚举当前网站的所有一级、二级甚至三级目录,然后编写脚本检测每个目录,看看目录中是否存在执行器执行端点路径。您也可以将这些路径放入目录扫描工具中进行扫描。 尽管这些监控信息的泄露程度足够高,但仍有一些利用该漏洞的方法增加了危害。 ① 获取认证字段,证明可以影响其他用户;这里主要通过访问/trace路径来获取用户认证字段信息。例如,以下站点存在执行器配置不当的漏洞。在它的trace路径下,除了记录基本的HTTP请求信息(时间戳、HTTP头等)之外,还有用户token和cookie字段: 用户认证字段在trace路径下泄露: ② 数据库账户密码泄露;由于执行器对现场的mysql、mangodb等数据库服务进行监控,有时可以通过监控信息获取mysql、mangodb数据库;这里主要是通过/env路径获取这些服务的配置信息。例如,以下站点存在执行器配置不当的漏洞。通过其/env路径可以获取mysql和mangodb的用户名和密码: ③git项目地址泄露;这通常位于/health 路径中。访问其健康路径可以检测站点git项目地址。 ④后台用户账号密码泄露;这通常位于/heapdump 路径下。访问/heapdump 路径并返回GZip 压缩的hprof 堆转储文件。在Android studio中打开时,站点内存信息会被泄露。很多情况下,都会包含后端用户的账号和密码。通过泄露的账户密码,可以进入后台进行一波测试。 ## Spring Eureka 未授权访问漏洞 Spring Eureka是一个用于服务注册和发现的组件。它提供一个网页来显示注册的服务信息。未能正确控制权限可能会导致未经授权的访问漏洞。 ### 如何利用该漏洞 直接访问路径/eureka/看看是否可以访问 或者添加邮件头X-Forwarded-For:127.0.0.1,看看是否可以绕过 ### 漏洞危害 1、敏感信息泄露:如果公共网络可以访问,注册信息就会被泄露 2、其他漏洞利用:例如spring boot Actuator+eureka+xstream可导致RCE漏洞。该漏洞可以通过以下链接找到:[https://blog.csdn.net/qq\\_18980147/article/details/128041932](https://blog.csdn.net/qq_18980147/article/details/128041932) 如何访问网页 ```` 服务器: port: 8801 # 服务端口号 弹簧: 应用程序: name: loveneurkaclient # 服务名称 尤里卡: 客户端: 服务网址: defaultZone: http://localhost:8881/eureka/# 注册的eureka服务地址 ```` 如上配置,网页的访问链接为http://localhost:8881/eureka/ ###修复方法 1\.要启用Spring Security 进行身份验证,请将以下配置添加到Eureka Server 配置文件中。要启用Spring Security进行身份验证,需要在Eureka Server中配置用户名和密码。 ```` ```` 安全: 基本: 已启用: 真 用户: 名称: 管理员 密码: 密码 ```` ```` 2\.配置Eureka Server的防火墙。您可以配置防火墙只允许指定的IP地址或网段访问管理界面。在Eureka Server配置文件中添加以下配置: ```` ```` 尤里卡: 服务器: # 允许访问Eureka Server的IP地址或网段 允许注册表覆盖: true 启用自我保护: false # 禁止修改Eureka Server的注册信息 禁用自注册: true # 配置Eureka Server防火墙规则 防火墙: # 允许的IP地址或网段 允许: - 192.168.1.0/24 - 127.0.0.1 ```` ```` 3\.对于生产环境中的Eureka Server,建议使用VPN等安全通道进行访问,避免直接暴露在公网。 ## 总结 以上介绍了Java项目中一些常见组件的未授权漏洞。这些通常是由配置问题引起的。测试的时候一定要注意这些组件的权限。转载自freebuf:[https://www.freebuf.com/articles/web/388808.html](https://www.freebuf.com/articles/web/388808.html)作者:Notadmin
创建帐户或登录后发表意见