未授权访问漏洞是指攻击者可以在不经过身份验证或授权的情况下,访问网站的敏感资源或功能.
这种漏洞通常发生在网站没有正确实施访问控制机制或存在安全配置错误的情况下,导致可以让任意用户或者限制访问用户可以访问到内部敏感信息。
1. SpringBoot Actuator未授权访问漏洞
Spring是java web开发里非常常见的开发框架,SpringBoot不是Spring官方的框架模式,而是个团队在Spring4.0版本上二次开发并开源公布出来的。简而言之,SpringBoot就是一个轻量级,简化配置和开发流程的web整合框架
Actuator是Spring Boot框架中的一个功能模块,它提供了一系列用于监控和管理SpringBoot应用程序的端点 (endpoints)。这些端点可以通过HTTP、JMX(Java ManagementExtensions)或其他一些远程方式访问,用于查看应用程序的各种运行时信息和健康状态
(1)端点信息
Spring Boot 1.x版本默认内置路由的根路径以开始,2.x 则统一以/actuator 开始
SpringBoot Actuator一些主要功能:
A. 健康检查(Health Check):提供了一个用于检查应用程序健康状况的端点。通过访问/actuator/health端点,可以查看应用程序是否正常运行。它对于实时监控应用程序的健康状态和故障排查非常有用。
B. 应用程序信息(Application Information):提供了关于应用程序的一些基本信息,如应用程序名称、版本号、描述等。通过访问/actuator/info端点,可以获取这些信息。
C. 环境配置信息(Environment Information):提供了应用程序的配置属性信息。通过访问/actuator/env端点,可以查看应用程序的配置属性及其值。
D. 线程转储(Thread Dump):提供了获取应用程序线程转储的端点,通过访问/actuator/threaddump端点,可以查看应用程序线程的当前状态,用于分析线程问题和死锁情况。
E. 度量指标(Metrics):提供了关于应用程序性能和资源利用的度量信息。通过访问/actuator/metrics端点,可以查看请求统计、内存使用、垃圾回收等指标。
F. 管理端点(Management Endpoints):除了上述常用端点外,Actuator还提供了其他一些管理端点,如刷新配置、关闭应用程序等。
(2)特征
A. 小绿叶
B. 报错信息
(3)漏洞复现
访问端点可以发现信息的泄露,此为1.x版本下的两个端点
此为2.x版本下env端点,需注意前需加actuator
(4)批量化自动扫描
使用如下脚本,可以对漏洞进行批量化自动扫描
GitHub - rabbitmask/SB-Actuator: Spring Boot Actuator未授权访问【XXE、RCE】单/多目标检测
若扫面单个网站,则-u后加url即可
若想同时扫描多个网站,则新建一个.txt文件后将所要扫描的网址输入其中
-f后加文件名即可成功扫描所需查验的多个网站
2.Docker Api未授权漏洞
(1)Docker 官方主要有三大对外api
A. Docker Registry API:
这个是docker镜像仓库的api,通过操作这套API,你可以自由的自动化、程序化的管理你的镜像仓库
B. Docker Hub API:
Docker Hub API是用户管理操作的API,docker hub是使用校验和公共 namespaces 的方式来存储账户信息、认证账户、进行账户授权。API同时也允许操作相关的用户仓库和 library 仓库
C. Docker Remote API:
这套API用于控制主机 Docker 服务端的AP,等价于 docker命令行客户端。有了它,你能远程操作docker容器,更重要的是你可以通过程序自动化运维docker进程。
(2)漏洞成因
在Docker的部署文档中,由于某些不安全的配置,导致2375管理端口对外,该未授权访问漏洞是因为Docker API可以执行Docker命令,该接口是目的是取代Docker命令界面,通过URL操作Docker。
(3)未授权利用
打开网站发现page not found,则说明存在漏洞
A. 查看版本信息 /version
B. 获取镜像列表
/images/json
C. 获取所有容器
/containers/json?all=1
3. Swagger Ui未授权
(1)Swagger
Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。相关的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。Swagger-Ul会根据开发人员在代码中的设置来自动生成API说明文档
(2)成因
Swagger未开启页面访问限制,Swagger未开启严格的Authorize认证
(3)危害
若存在相关配置缺陷,攻击者可以未授权翻查Swagger接口文档,得到系统功能API接口的详细参数,再构造参数发包,通过回显获取系统大量的敏感信息。
(4)Swagger Ui文档
/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
(5)未授权测试
我们可以对某些数据进行增删改
用bp进行抓包后发现参数成功写入