未授权漏洞
目录
0x02、SpringBoot Actuator 未授权访问
0x01、什么是未授权漏洞
未授权访问漏洞可以理解为需要安全配置或权限认证的地址、授权页面存在缺陷导致其他用户可以直接访问从而引发重要权限可被操作、数据库或网站目录等敏感信息泄露。
0x02、SpringBoot Actuator 未授权访问
2.1 漏洞简介
Actuator 是 springboot 提供的用来对应用系统进行自省和监控的功能模块,借助于 Actuator 开发者可以很方便地对应用系统某些监控指标进行查看、统计等。在 Actuator 启用的情况下,如果没有做好相关权限控制,非法用户可通过访问默认的执行器端点(endpoints)来获取应用系统中的监控信息,从而导致信息泄露甚至服务器被接管的事件发生。
2.2漏洞分析
① 分析web 应用使用的框架为 springboot 框架
② 如果web应用开发者没有修改springboot web默认图标
③ 如果修改了默认图标,我们通过访问refresh web网页报错进行分析,如果 web 应用开发者没有修改 springboot web 应用的默认 4xx、5xx 报错页面,那么当 web 应用程序出现 4xx、5xx 错误时,会报错如下如图所示
④可以将界面放入burp suite 中抓包,如果请求数据中存在token,将token删除后,访问界面有敏感数据,则判断有未授权漏洞
2.3漏洞检测
可利用未授权常见访问路径(不限于根目录下,可能是某个目录下存在 )(目录遍历)
/autoconfig 提供了一份自动配置报告,记录哪些自动配置条件通过了,哪些没通过
/configprops 描述配置属性(包含默认值)如何注入Bean
/beans 描述应用程序上下文里全部的 Bean,以及它们的关系
/dump 获取线程活动的快照
/env 获取全部环境属性
/enviiname 根据名称获取特定的环境属性值
/health 报告应用程序的健康指标,这些值由 HealthIndicator的实现类提供
/info 获取应用程序的定制信息,这些信息由info打头的属性提供
/mappings 描述全部的 URI 路径,以及它们和控制器(包含 Actuator 端点)的映射关系
/metrics 报告各种应用程序度量信息,比如内存用量和 HTTP 请求计数
/metrics/name 报告指定名称的应用程序度量值
/shutdown 关闭应用程序,要求 endpoints.shutdown.enabled 设置为 true(默认为 false
/trace 提供基本的 HTTP 请求跟踪信息(时间戳、HTTP头等
数据库账号密码泄露
由于 actuator 会监控站点 mysql、mangodb 之类的数据库服务
所以通过监控信息有时可以拿下 mysql、mangodb 数据库
这个主要通过/env 路径获取这些服务的配置信息
比如如下站点存在 actuator 配置不当漏洞,通过其/env 路径
可获得 mysql、mangodb 的用户名及密码
查看http历史消息
这个主要通过访问/trace 路径;
比如如下站点存在 actuator 配置不当漏洞;
在其 trace 路径下,除了记录有基本的 HTTP 请求信息(时间戳、HTTP 头等);
还会存在有用户 token、cookie 字段;
trace 下可以看到我们之前访问的记录;
0x03 SwaggerUI未授权访问漏洞
3.1 漏洞简介
Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。相关的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。Swagger-UI会根据开发人员在代码中的设置来自动生成API说明文档,若存在相关的配置缺陷,攻击者可以未授权翻查Swagger接口文档,得到系统功能API接口的详细参数,再构造参数发包,通过回显获取系统大量的敏感信息。
3.2 漏洞分析
Swagger未开启页面访问限制,Swagger未开启严格的Authorize认证。
注:Authorization是指根据用户提供的身份凭证,生成权限实体,并为之授予相应的权限。
3.3 漏洞检测
/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-ui.json
/api/swagger.json
/api/swagger/
/api/swagger/ui
/api/swagger/ui/
/api/swaggerui
/api/swaggerui/
/api/v1/
/api/v1/api-docs
/api/v1/apidocs
/api/v1/swagger
/api/v1/swagger-ui
/api/v1/swagger-ui.html
/api/v1/swagger-ui.json
/api/v1/swagger.json
/api/v1/swagger/
/api/v2
/api/v2/api-docs
/api/v2/apidocs
/api/v2/swagger
/api/v2/swagger-ui
/api/v2/swagger-ui.html
/api/v2/swagger-ui.json
/api/v2/swagger.json
/api/v2/swagger/
/api/v3
/apidocs
/apidocs/swagger.json
/doc.html
/docs/
/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-resources
/swagger-resources/configuration/security
/swagger-resources/configuration/security/
/swagger-resources/configuration/ui
/swagger-resources/configuration/ui/
/swagger-ui
/swagger-ui.html
/swagger-ui.html#/api-memory-controller
/swagger-ui.html/
/swagger-ui.json
/swagger-ui/swagger.json
/swagger.json
/swagger.yml
/swagger/
/swagger/index.html
/swagger/static/index.html
/swagger/swagger-ui.html
/swagger/ui/
/Swagger/ui/index
/swagger/ui/index
/swagger/v1/swagger.json
/swagger/v2/swagger.json
/template/swagger-ui.html
/user/swagger-ui.html
/user/swagger-ui.html/
/v1.x/swagger-ui.html
/v1/api-docs
/v1/swagger.json
/v2/api-docs
/v3/api-docs
可以添加上述默认路径到dirsearch等目录扫描工具的字典中,再对目标网站进行扫描测试。