AWS S3存储桶公开暴露JSON配置文件漏洞分析

本文详细分析了AWS S3存储桶公开暴露JSON配置文件的安全漏洞,涉及Twitch IVS服务的生产配置泄露,包括功能开关、实验标识符等敏感信息,最终通过配置更新修复了目录列表问题。

AWS VDP | 报告 #3382796 - 负责任披露 - 公开S3存储桶暴露JSON/配置文件

报告概述

提交者: xtawb
报告时间: 2025年10月14日 9:39 AM UTC
状态: 已解决
严重程度: 低(0.1 ~ 3.9)

漏洞描述

初始报告

我发现一个公开可列出的S3存储桶(█████),该存储桶返回包含多个JSON/配置文件的XML ListBucketResult。存储桶列表和文件元数据可在无需身份验证的情况下检索。

观察到的文件示例

  • ███████ (最后修改时间: ████07T19███)
  • ████ (最后修改时间: █████07T19███████)

重现步骤

  1. 从互联网连接的主机请求存储桶列表:
1
curl ███

服务器响应包含多个JSON/配置文件内容的S3 ListBucketResult XML。

影响分析

  • 存储桶暴露内部配置和版本化JSON文件,可能泄露内部API端点、配置参数、功能标志等操作细节
  • 文件名和时间戳可见,有助于指纹识别版本和部署时间线
  • 如果JSON文件包含密钥或个人身份信息,影响可能升级为高/严重级别

技术细节

深入分析

经过深入分析,确认这是一个实际的信息披露问题,暴露了Twitch IVS(交互式视频服务)基础设施和移动广播SDK使用的内部配置数据。

暴露的文件包括

  • ███████
  • █████
  • ██████████
  • ███████

证据和概念验证

示例可访问文件

1
2
████████
████████

示例响应(████)

1
2
3
4
5
6
{
 "name": "█████████",
 "value_analytics": "██████",
 "encoding": "base64", 
 "value_json": "{ \"enabled\": true, \"rollout-id\": 1000, \"force-redistribute\": false }"
}

示例响应(████████)

1
2
3
4
5
6
{
 "name": "███████", 
 "value_analytics": "ios-tls-validation",
 "encoding": "base64",
 "value_json": "{ \"enabled\": true, \"environment\": \"prod\", \"uuid\": \"████████\" }"
}

暴露的敏感信息

  1. 功能发布配置(生产标志)

    • 暴露内部IVS功能开关
    • 显示发布ID、分析值和版本控制逻辑
  2. 内部实验标识符和UUID

    1
    2
    
    "value_analytics": "████"
    "uuid": "██████████"
    
  3. 测试设备信息

    • 部分配置引用设备制造商和型号
  4. ListBucketResult中的元数据泄露

    • 显示修改时间戳、对象哈希、存储类和所有者ID

修复过程

AWS响应

AWS VDP团队确认问题并实施修复:

  • 虽然文件是故意公开用于SDK分发,但目录列表功能是非预期的
  • 实施了小的配置更新以消除目录列表,同时保持必要的SDK访问

验证修复

测试确认修复已生效:

1
2
3
4
5
└─# curl -I ██████                          
HTTP/2 403 
content-type: application/xml
x-amz-bucket-region: us-west-2
server: AmazonS3

最终状态

报告状态: 已解决
披露状态: 已公开披露
奖励: 40美元AWS Gear Shop礼品卡

该案例展示了即使不涉及直接凭据泄露,公开的S3存储桶配置也可能暴露有价值的内部运营信息,强调了遵循最小权限原则的重要性。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计