密码重置投毒
翻译
原文:https://portswigger.net/web-security/host-header/exploiting/password-reset-poisoning
- name: 翻译
desc: 原文:https://portswigger.net/web-security/host-header/exploiting/password-reset-poisoning
bgColor: '#F0DFB1'
textColor: 'green'
2
3
4
# 1密码重置投毒
密码重置投毒是一种技术,攻击者通过该技术操纵易受攻击的网站生成指向其控制下的域的密码重置链接。此行为可用于窃取重置任意用户密码所需的秘密令牌,并最终破坏其帐户。
密码重置中毒是一种攻击者操纵易受攻击的网站生成指向其控制下的域的密码重置链接的技术。这种行为可以用来窃取重置任意用户密码所需的秘密令牌,并最终危及他们的帐户。
Research
这项技术于 2013 年由我们的研究总监 James Kettle 首次记录。 (opens new window)
查看我们的研究页面,了解 James 和其他团队成员发现的更多创新技术,包含完整的文章和视频演示。 (opens new window)
# 2密码重置如何工作?
几乎所有需要登录的网站都有一个功能,允许用户在忘记密码时重置密码。有几种方法可以做到这一点,它们具有不同程度的安全性和实用性。最常见的方法之一是这样的:
- 用户输入自己的用户名或电子邮件地址,并提交密码重置请求。
- 网站检查此用户是否存在,然后生成一个临时的、唯一的、高强度的令牌,该令牌与后端的用户帐户相关联。
- 网站会向用户发送一封电子邮件,其中包含用于重置密码的链接。用户唯一的重置令牌被作为查询参数,包含在相应的 URL 中:
https://normal-website.com/reset?token=0a1b2c3d4e5f6g7h8i9j
- 当用户访问此 URL 时,网站会检查所提供的令牌是否有效,并使用它来确定正在重置哪个帐户。如果一切正常,则用户可以选择输入新密码。最后,令牌被销毁。
与其他一些方法相比,以上过程足够简单且相对安全。但是,它的安全性依赖于这样一个原则——只有目标用户才能访问其自己的电子邮件收件箱,从而访问他们的唯一令牌。密码重置投毒是一种 窃取令牌 并更改其他用户密码的方法。
# 3如何构造密码重置投毒攻击
如果发送给用户的 URL 是基于可控输入(例如Host
标头)动态生成的,则可能会产生密码重置投毒攻击,如下所示:
- 攻击者根据需要,获取受害者的电子邮件地址或用户名,并代表他们发出密码重置请求。提交表单时,他们会拦截产生的 HTTP 请求并修改
Host
标头,使其指向他们控制的域。在此示例中,我们将使用evil-user.net
。 - 受害者直接从网站收到一封真正的密码重置电子邮件。这似乎包含一个用于重置其密码的普通链接,至关重要的是,其中包含与其帐户相关联的有效密码重置令牌。但是,URL 中的域名指向攻击者的服务器:
https://evil-user.net/reset?token=0a1b2c3d4e5f6g7h8i9j
- 如果受害者单击此链接(或以其他方式访问此链接,例如,由防病毒扫描程序访问),则密码重置令牌将被传递到攻击者的服务器。
- 现在,攻击者可以访问易受攻击网站的真实 URL,并通过相应的参数,提供受害者被盗的令牌。随后,他们可以将用户的密码 重置为 他们喜欢的任何密码,最后登录到他们的帐户。
例如,在真实的攻击中,攻击者可能会用 虚假的违规通知 来预热受害者,从而增加受害者点击链接的可能性。
即使你无法控制密码重置链接,有时也可以使用Host
标头将敏感的 HTML 注入电子邮件。请注意,电子邮件客户端通常不执行 JavaScript,但其他 HTML 注入技术(例如悬挂标记攻击 (opens new window))可能仍然适用。
- name: 实验室-学徒
desc: 基本密码重置投毒 >>
avatar: https://fastly.statically.io/gh/clincat/blog-imgs@main/vuepress/static/imgs/docs/burpsuite-learn/public/lab-logo.png
link: https://portswigger.net/web-security/host-header/exploiting/password-reset-poisoning/lab-host-header-basic-password-reset-poisoning
bgColor: '#001350'
textColor: '#39d50c'
2
3
4
5
6
- name: 实验室-从业者
desc: 通过中间件实现密码重置投毒(注意:这是 “身份验证” 主题中的实验室) >>
avatar: https://fastly.statically.io/gh/clincat/blog-imgs@main/vuepress/static/imgs/docs/burpsuite-learn/public/lab-logo.png
link: https://portswigger.net/web-security/authentication/other-mechanisms/lab-password-reset-poisoning-via-middleware
bgColor: '#001350'
textColor: '#4cc1ff'
2
3
4
5
6
- name: 实验室-专家
desc: 通过悬挂标记实现密码重置投毒 >>
avatar: https://fastly.statically.io/gh/clincat/blog-imgs@main/vuepress/static/imgs/docs/burpsuite-learn/public/lab-logo.png
link: https://portswigger.net/web-security/host-header/exploiting/password-reset-poisoning/lab-host-header-password-reset-poisoning-via-dangling-markup
bgColor: '#001350'
textColor: '#d112fe'
2
3
4
5
6