[严重] 通过密码重置实现的零点击账户劫持 [AUTH-3243] /orchestrator/v1/password_reset/start
摘要
在目标网站的密码重置功能中发现了一个零点击账户劫持漏洞。该漏洞允许攻击者在无需受害者任何交互或同意的情况下重置受害者密码,导致受害者账户被完全入侵。
操作系统: WINDOWS
是否使用VPN: 否
浏览器: 攻击者使用FIRFOX,受害者使用Burp Browser
重现步骤
- 访问密码重置页面: 导航至网站上的“忘记密码”或“重置密码”部分。
- 为受害者和攻击者账户发起密码重置: 在密码重置表单中输入受害者的电子邮件地址,同时输入攻击者的电子邮件地址以发起密码重置。
- 捕获密码重置请求: 使用代理工具(如Burp Suite或OWASP ZAP)拦截提交密码重置请求时的HTTP请求。
- 分析泄露信息:
- 端点:
/orchestrator/v1/password_reset/start - 需要从此特定端点获取JWT令牌。有两个同名的端点:一个在响应中不包含JWT令牌,另一个包含JWT令牌(攻击所必需)。
- 确保目标是提供JWT令牌的正确端点。来自任何其他端点的受害者JWT令牌均无效。
- 下载Burp Suite的JSON Web Token工具,该工具将以绿色高亮显示包含JWT令牌的请求,便于识别正确端点。
- 仅上述端点有效且可用于获取攻击所需的JWT。该端点可能不会在第一次尝试时出现,可能需要重复过程(如录制视频所示,第二次尝试时出现)。
- 检查拦截的请求并识别敏感参数,如:
AMP_d0cf3ed24c: 包含用户信息,如deviceId、userId和sessionId。- JWT: 包含用户电子邮件和其他信息的JSON Web Token。
- 保存这两个参数。
- 端点:
- 输入一次性密码(OTP): 输入通过电子邮件或手机收到的OTP以继续密码重置(针对攻击者账户)。
- 修改HTTP请求: 在发送密码重置请求之前,将HTTP请求中的会话数据替换为受害者的会话数据:
- 将
AMP_d0cf3ed24c和JWT值替换为从泄露请求中获取的受害者值。
- 将
- 发送修改后的请求。
- 访问受害者账户: 如果成功,您将能够在无需受害者任何交互的情况下重置受害者密码。使用受害者的电子邮件地址和您设置的新密码登录。
概念验证(POC)
- 视频 F3749680: poc1(0account_take_over).mp4 71.33 MiB
- 视频 F3749681: poc2(0account_take_over).mp4 6.05 MiB
影响
摘要
该漏洞允许攻击者在无需用户交互或特殊权限的情况下重置受害者账户密码。通过拦截密码重置请求并用受害者的会话数据修改它,攻击者可以成功劫持账户。此外,该网站允许资金转账,通过利用此漏洞,攻击者可能从受害者账户窃取资金。
要求
- 访问受害者的密码重置请求:通过Burp Suite或OWASP ZAP等工具拦截。
- 了解受害者的会话信息:包括AMP_d0cf3ed24c和JWT等令牌,这些在拦截的请求中可用。
- 访问攻击者自己的OTP:攻击者需要自己的OTP进行密码重置。
- 修改HTTP请求的能力:攻击者需要能够将自己的会话数据替换为受害者的会话数据以执行攻击。
获得的权限
通过利用此漏洞,攻击者获得以下权限:
- 完全账户控制:攻击者可以重置受害者密码并登录账户,无需受害者凭据。
- 访问机密数据:攻击者可以访问受害者账户中的敏感信息,包括个人详细信息、电子邮件和其他私人数据。
- 操纵账户设置:攻击者可以修改账户设置、更改与账户关联的电子邮件地址或执行通常需要用户同意的其他操作。
- 可能锁定受害者:攻击者可以更改密码并阻止受害者访问自己的账户,导致潜在的服务拒绝。
- 窃取资金:由于网站允许资金转账,攻击者可以将所有资金从受损账户转移到自己的账户, effectively窃取受害者的资金。
附件
- F3749680: poc1(0account_take_over).mp4
- F3749681: poc2(0account_take_over).mp4
时间线
- 2024年11月10日, 2:56pm UTC: db3wy 提交报告给Remitly。
- 2024年11月12日, 3:18pm UTC: db3wy 发布评论,提供强制网站显示CAPTCHA的方法以触发泄露JWT的请求。
- 2024年11月13日, 6:01pm UTC: Remitly员工francoisd11 将状态更改为“需要更多信息”,要求演示攻击并获取特定用户标志。
- 2024年11月14日, 4:27am UTC: db3wy 将状态更改为“新”,完成账户劫持并提供标志“Buggy Bounties”及视频证明。
- 2024年11月14日, 4:52am UTC: francoisd11 确认发现并将严重性评为严重,工程团队正在处理。
- 2024年11月14日, 6:13pm UTC: 邀请报告者进行重新测试,奖励50美元。
- 2024年11月15日, 5:08am UTC: db3wy 完成重新测试,确认问题已修复。
- 2024年11月15日, 6:32am UTC: Remitly奖励50美元给db3wy以完成重新测试,并将报告状态更改为“已解决”。
- 2024年12月23日, 7:53am UTC: Remitly奖励db3wy漏洞奖金。
- 2025年6月21日, 10:23pm UTC: db3wy 请求披露此报告,报告于2025年7月21日披露。
报告详情
- 报告ID: #2831902
- 状态: 已解决
- 严重性: 严重 (9.8)
- 披露日期: 2025年7月21日, 10:23pm UTC
- 弱点: 不当访问控制 - 通用
- CVE ID: 无
- 奖金: 隐藏
- 账户详情: 无