Reflected XSS in Amazon India
字数 1577 2025-08-26 22:11:45

Amazon India 反射型XSS漏洞分析与教学文档

漏洞概述

本文档详细分析了一个在Amazon印度子站(datavault.amazon.in)上发现的反射型跨站脚本(XSS)漏洞。该漏洞存在于文件下载功能中,由于未对用户输入进行适当过滤和转义,导致攻击者能够注入任意JavaScript代码。

漏洞发现过程

1. 信息收集阶段

  • 使用amass工具对amazon.in域名进行子域名枚举
  • 使用Aquatone工具对发现的子域名进行页面截屏
  • 通过对比截屏结果,选择datavault.amazon.in站点进行深入测试

2. 初步分析

  • 登录后页面显示有限信息(仅注册邮箱)
  • 查看页面源代码发现有趣的JavaScript文件
  • 重点分析installnationCommons.js文件

3. 关键函数分析

发现两个关键函数,暴露了潜在的漏洞端点:

// 函数1: 下载可负担性文档
function downloadAffordabilityDocument()

// 函数2: 通用文档下载
function downloadDocument()

从函数中提取出两个URL端点:

  1. https://datavault.amazon.in/affordabilityDownloadReport?DocumentName=<DOCUMENT_NAME>
  2. https://datavault.amazon.in/data/DownloadReport?DocumentName=<DOCUMENT_NAME>&RequestType=<REQUEST_TYPE>

漏洞验证

1. HTML注入测试

Payload: <b>BOLD</b>cd

测试URL:

https://datavault.amazon.in/data/DownloadReport?DocumentName=123&RequestType=<b>BOLD</b>cd

结果:

  • 页面成功渲染了<b>标签,显示为粗体"BOLD"
  • 确认用户输入未经过滤直接嵌入HTML

2. XSS验证测试

Payload: <script>alert('XSS');</script>

测试URL:

https://datavault.amazon.in/data/DownloadReport?DocumentName=123&RequestType=<script>alert('XSS');</script>

结果:

  • JavaScript弹窗成功执行
  • 确认存在反射型XSS漏洞

攻击利用分析

攻击向量

  • 构造恶意URL,包含XSS payload
  • 通过社交工程诱使用户点击该URL

潜在影响

  1. 会话劫持:虽然cookie设置了HttpOnly和Secure属性,防止直接窃取
  2. 钓鱼攻击:注入伪造的表单诱导用户输入凭证
  3. 重定向攻击:将用户导向恶意站点
  4. 键盘记录:注入键盘记录脚本捕获用户输入

限制因素

  • 需要用户交互(点击链接)
  • Cookie设置了安全属性,增加了攻击难度

漏洞修复建议

  1. 输入验证

    • RequestType参数实施严格的白名单验证
    • 只允许预期的字符和格式
  2. 输出编码

    • 对所有动态内容进行HTML实体编码
    • 使用上下文相关的编码(HTML属性、JavaScript、URL等)
  3. 内容安全策略(CSP)

    • 实施严格的内容安全策略
    • 限制内联脚本执行
  4. 其他防护措施

    • 设置X-XSS-Protection
    • 使用HttpOnlySecure cookie标志(已实现)

漏洞报告时间线

  • 报告日期:2018年3月1日
  • 响应时间:24小时内获得Amazon安全团队响应
  • 修复确认:2018年3月12日收到修复确认邮件

教学要点总结

  1. 子域名枚举是发现测试目标的重要步骤
  2. 源代码分析能揭示隐藏的功能和潜在漏洞
  3. 参数测试应包含所有用户可控的输入点
  4. 逐步验证从HTML注入到完整XSS的执行过程
  5. 影响评估需考虑实际攻击场景和限制因素
  6. 修复方案应包含防御深度措施

扩展学习

  1. 练习使用amassAquatone进行目标侦察
  2. 研究不同上下文中的XSS payload构造
  3. 学习现代浏览器安全机制如何影响XSS利用
  4. 探索自动化XSS检测工具的使用(如XSStrike等)
  5. 研究其他知名网站的XSS案例报告

通过本案例,安全研究人员可以学习到从目标发现到漏洞验证的完整过程,以及企业级网站中可能存在的安全漏洞模式。

Amazon India 反射型XSS漏洞分析与教学文档 漏洞概述 本文档详细分析了一个在Amazon印度子站(datavault.amazon.in)上发现的反射型跨站脚本(XSS)漏洞。该漏洞存在于文件下载功能中,由于未对用户输入进行适当过滤和转义,导致攻击者能够注入任意JavaScript代码。 漏洞发现过程 1. 信息收集阶段 使用 amass 工具对 amazon.in 域名进行子域名枚举 使用 Aquatone 工具对发现的子域名进行页面截屏 通过对比截屏结果,选择 datavault.amazon.in 站点进行深入测试 2. 初步分析 登录后页面显示有限信息(仅注册邮箱) 查看页面源代码发现有趣的JavaScript文件 重点分析 installnationCommons.js 文件 3. 关键函数分析 发现两个关键函数,暴露了潜在的漏洞端点: 从函数中提取出两个URL端点: https://datavault.amazon.in/affordabilityDownloadReport?DocumentName=<DOCUMENT_NAME> https://datavault.amazon.in/data/DownloadReport?DocumentName=<DOCUMENT_NAME>&RequestType=<REQUEST_TYPE> 漏洞验证 1. HTML注入测试 Payload : <b>BOLD</b>cd 测试URL : 结果 : 页面成功渲染了 <b> 标签,显示为粗体"BOLD" 确认用户输入未经过滤直接嵌入HTML 2. XSS验证测试 Payload : <script>alert('XSS');</script> 测试URL : 结果 : JavaScript弹窗成功执行 确认存在反射型XSS漏洞 攻击利用分析 攻击向量 构造恶意URL,包含XSS payload 通过社交工程诱使用户点击该URL 潜在影响 会话劫持 :虽然cookie设置了HttpOnly和Secure属性,防止直接窃取 钓鱼攻击 :注入伪造的表单诱导用户输入凭证 重定向攻击 :将用户导向恶意站点 键盘记录 :注入键盘记录脚本捕获用户输入 限制因素 需要用户交互(点击链接) Cookie设置了安全属性,增加了攻击难度 漏洞修复建议 输入验证 : 对 RequestType 参数实施严格的白名单验证 只允许预期的字符和格式 输出编码 : 对所有动态内容进行HTML实体编码 使用上下文相关的编码(HTML属性、JavaScript、URL等) 内容安全策略(CSP) : 实施严格的内容安全策略 限制内联脚本执行 其他防护措施 : 设置 X-XSS-Protection 头 使用 HttpOnly 和 Secure cookie标志(已实现) 漏洞报告时间线 报告日期 :2018年3月1日 响应时间 :24小时内获得Amazon安全团队响应 修复确认 :2018年3月12日收到修复确认邮件 教学要点总结 子域名枚举 是发现测试目标的重要步骤 源代码分析 能揭示隐藏的功能和潜在漏洞 参数测试 应包含所有用户可控的输入点 逐步验证 从HTML注入到完整XSS的执行过程 影响评估 需考虑实际攻击场景和限制因素 修复方案 应包含防御深度措施 扩展学习 练习使用 amass 和 Aquatone 进行目标侦察 研究不同上下文中的XSS payload构造 学习现代浏览器安全机制如何影响XSS利用 探索自动化XSS检测工具的使用(如XSStrike等) 研究其他知名网站的XSS案例报告 通过本案例,安全研究人员可以学习到从目标发现到漏洞验证的完整过程,以及企业级网站中可能存在的安全漏洞模式。