OSS安全问题与HVV实战拿下某省级系统SSO权限
字数 1413 2025-08-20 18:17:58
OSS安全配置漏洞分析与实战挖掘指南
1. OSS环境搭建与基础概念
1.1 阿里云OSS环境搭建
- 可通过阿里云官网试用OSS服务:https://www.aliyun.com/product/oss
- 创建存储桶(Bucket)时需注意权限配置选项
1.2 存储桶访问场景分析
访问结果类型:
-
成功访问(200)
- 存储桶配置为公开(公共读/公共读写)
- 可能开启了文件路径列出(ListObject)权限
- 响应中包含key id等数据
-
路径不正确(403)
- 有权访问但文件路径错误
- 可能原因:
- 文件路径不正确
- 存储桶为空且关闭了ListObject权限
-
拒绝访问(403)
- 多种可能性:
- 存储桶配置为私有需要身份认证
- 文件路径不存在
- 存储桶为空
- 特定Bucket策略限制
- 多种可能性:
-
存储桶不存在(404)
- 访问的存储桶名称不存在
-
存储桶名无效(400)
- 存储桶命名不符合规范
2. OSS不安全配置漏洞分析
2.1 公共读/公共读写配置风险
- 风险:所有人无需身份验证即可访问存储桶数据
- 影响:可能导致敏感数据泄露
2.2 OSS凭证泄露
- Access Key ID和Access Key Secret泄露风险
- 凭证泄露可能导致存储桶被完全控制
- 参考文章:云主机密钥泄露分析
2.3 OSS存储桶路径列出漏洞
- 触发条件:
- 配置为公共读/公共读写
- Bucket授权策略中开启"只读(包含ListObject)"
- 影响:
- 类似Apache目录遍历漏洞
- 直接暴露所有文件路径(Key)
- 无需爆破即可获取完整文件列表
- 自动化工具:
- ossx工具可提取文件具体路径
3. OSS渗透测试技术
3.1 存储桶名爆破
- 原理:存储桶名作为子域名存在
- 可行性分析:
- 无目标信息时几乎不可能成功
- 适用于有命名规律的情况(如企业名+标识)
- 获取存储桶名方法:
- 查看访问文件时的子域名
- 分析响应包
- 使用FindSomeThing等插件
3.2 存储桶文件名路径爆破
- 适用场景:
- 存储桶为公开但不知文件路径
- 未开启ListObject权限
- 方法:
- 准备常见文件名字典(如1.pdf, test.jpg等)
- 使用工具自动化爆破
4. 403场景分析与绕过技术
4.1 403 AccessDenied可能原因
-
存储桶配置为私有
- 需要正确身份验证参数
- 无凭证时难以利用
-
文件路径未知
- 存储桶公开但路径未知
- 未开启ListObject权限
- 解决方案:文件名爆破
-
存储桶为空
- 无文件且关闭ListObject权限
4.2 403与200的区分特征
- 开启ListObject权限:会显示文件列表
- 关闭ListObject权限:仅显示403错误
5. 安全建议
5.1 配置建议
- 避免使用公共读写权限
- 谨慎开启ListObject权限
- 对敏感数据使用私有权限
- 实施最小权限原则
5.2 凭证管理
- 定期轮换Access Key
- 避免在客户端代码中硬编码凭证
- 使用临时凭证(STS)替代长期凭证
5.3 监控与审计
- 启用OSS访问日志
- 设置异常访问告警
- 定期审计Bucket权限配置
6. 实战检查清单
- 检查存储桶权限配置(公共/私有)
- 测试ListObject权限是否开启
- 收集可能的存储桶命名信息
- 准备常见文件名爆破字典
- 检查响应包获取元信息
- 使用自动化工具提高效率
通过以上方法,可以全面评估OSS存储桶的安全配置,发现并修复潜在的数据泄露风险。