挖洞经验 | 通过密码重置功能构造HTTP Leak实现任意账户劫持
字数 572 2025-08-18 11:38:28
HTTP Leak攻击与密码重置功能漏洞利用分析
漏洞概述
本文分析了一种通过密码重置功能中的HTML注入漏洞构造HTTP Leak攻击,最终实现任意账户劫持的技术方法。该漏洞存在于目标应用服务的密码重置功能中,攻击者可以利用HTML注入漏洞获取账户的密码重置Token,从而实现对其他账户的完全控制。
漏洞发现过程
1. 密码重置功能分析
在测试目标应用服务(app.com)的密码重置功能时,发现服务端会向用户邮箱发送HTML格式的密码重置邮件。邮件内容基于模板生成,关键请求如下:
<!DOCTYPE html>
<html>
<head></head>
<body style="font-family: Arial; font-size: 12px;">
<div>
<p>You have requested a password reset, please follow the link below to reset your password.</p>
<p>Please ignore this email if you did not request a password change.</p>
<p><a href="{{ RESET-LINK }}">Follow this link to reset your password.</a></p>
</div>
</body>
</html>
2. HTML注入漏洞确认
测试发现emailBody参数未经过滤,允许攻击者注入自定义HTML内容。通过插入<a>标签测试确认了注入可能性:
click<a>here</a>
收到的邮件中成功显示了注入的HTML内容,证明存在HTML注入漏洞。
HTTP Leak攻击原理
1. HTTP Leak简介
HTTP Leak是一种利用HTML元素和属性在请求外部资源时泄露敏感信息的技术。由德国安全公司Cure53提出的HttpLeaks项目系统研究了这类问题。
2. 相关技术背景
- 可绕过CSP(内容安全策略)防护
- 可用于检测邮件是否被打开阅读
- 可破坏声称提供"匿名"访问的Web代理工具
攻击构造方法
1. 攻击Payload设计
利用HTML注入漏洞构造以下Payload: