# 账户接管 {{#include ../banners/hacktricks-training.md}} ## **授权问题** 应尝试更改账户的电子邮件,并且必须检查确认过程。如果发现确认过程**薄弱**,则应将电子邮件更改为目标受害者的电子邮件并进行确认。 ## **Unicode规范化问题** 1. 目标受害者的账户 `victim@gmail.com` 2. 应使用Unicode创建一个账户\ 例如:`vićtim@gmail.com` 如[**此演讲**](https://www.youtube.com/watch?v=CiIyaZ3x49c)所述,之前的攻击也可以通过滥用第三方身份提供者来完成: - 在第三方身份提供者中创建一个与受害者相似的电子邮件账户,使用某些Unicode字符(`vićtim@company.com`)。 - 第三方提供者不应验证电子邮件 - 如果身份提供者验证了电子邮件,您可以尝试攻击域名部分,例如:`victim@ćompany.com`,并注册该域名,希望身份提供者生成域名的ascii版本,而受害者平台规范化域名。 - 通过此身份提供者登录受害者平台,受害者平台应规范化Unicode字符并允许您访问受害者账户。 有关更多详细信息,请参阅关于Unicode规范化的文档: {{#ref}} unicode-injection/unicode-normalization.md {{#endref}} ## **重用重置令牌** 如果目标系统允许**重置链接被重用**,应努力使用`gau`、`wayback`或`scan.io`等工具**查找更多重置链接**。 ## **预账户接管** 1. 应使用受害者的电子邮件在平台上注册,并设置密码(应尝试确认,但由于无法访问受害者的电子邮件,这可能是不可能的)。 2. 应等待受害者使用OAuth注册并确认账户。 3. 希望常规注册将被确认,从而允许访问受害者的账户。 ## **CORS配置错误导致账户接管** 如果页面包含**CORS配置错误**,您可能能够**窃取用户的敏感信息**以**接管他的账户**或使他更改身份验证信息以达到同样的目的: {{#ref}} cors-bypass.md {{#endref}} ## **CSRF导致账户接管** 如果页面易受CSRF攻击,您可能能够使**用户修改他的密码**、电子邮件或身份验证,以便您可以访问它: {{#ref}} csrf-cross-site-request-forgery.md {{#endref}} ## **XSS导致账户接管** 如果您在应用程序中发现XSS,您可能能够窃取cookies、local storage或网页信息,从而允许您接管账户: {{#ref}} xss-cross-site-scripting/ {{#endref}} ## **同源 + Cookies** 如果您发现有限的XSS或子域接管,您可以操作cookies(例如固定它们)以尝试妥协受害者账户: {{#ref}} hacking-with-cookies/ {{#endref}} ## **攻击密码重置机制** {{#ref}} reset-password.md {{#endref}} ## **响应操控** 如果身份验证响应可以**简化为一个简单的布尔值,只需尝试将false更改为true**,看看您是否获得任何访问权限。 ## OAuth导致账户接管 {{#ref}} oauth-to-account-takeover.md {{#endref}} ## 主机头注入 1. 在发起密码重置请求后,修改Host头。 2. 将`X-Forwarded-For`代理头更改为`attacker.com`。 3. 同时将Host、Referrer和Origin头更改为`attacker.com`。 4. 在发起密码重置并选择重新发送邮件后,采用上述三种方法。 ## 响应操控 1. **代码操控**:将状态代码更改为`200 OK`。 2. **代码和主体操控**: - 将状态代码更改为`200 OK`。 - 将响应主体修改为`{"success":true}`或空对象`{}`。 这些操控技术在使用JSON进行数据传输和接收的场景中有效。 ## 更改当前会话的电子邮件 来自[此报告](https://dynnyd20.medium.com/one-click-account-take-over-e500929656ea): - 攻击者请求将其电子邮件更改为新电子邮件 - 攻击者收到确认更改电子邮件的链接 - 攻击者将链接发送给受害者以便其点击 - 受害者的电子邮件被更改为攻击者指示的电子邮件 - 攻击者可以恢复密码并接管账户 这也发生在[**此报告**](https://dynnyd20.medium.com/one-click-account-take-over-e500929656ea)中。 ### 绕过电子邮件验证以进行账户接管 - 攻击者使用attacker@test.com登录并在注册时验证电子邮件。 - 攻击者将已验证的电子邮件更改为victim@test.com(更改电子邮件时没有二次验证) - 现在网站允许victim@test.com登录,我们已绕过受害者用户的电子邮件验证。 ### 旧Cookies 如[**在此帖子中**](https://medium.com/@niraj1mahajan/uncovering-the-hidden-vulnerability-how-i-found-an-authentication-bypass-on-shopifys-exchange-cc2729ea31a9)所述,可以登录到一个账户,保存cookies作为已验证用户,注销,然后再次登录。\ 在新的登录中,尽管可能生成不同的cookies,但旧的cookies又开始工作。 ## 参考文献 - [https://infosecwriteups.com/firing-8-account-takeover-methods-77e892099050](https://infosecwriteups.com/firing-8-account-takeover-methods-77e892099050) - [https://dynnyd20.medium.com/one-click-account-take-over-e500929656ea](https://dynnyd20.medium.com/one-click-account-take-over-e500929656ea) {{#include ../banners/hacktricks-training.md}}