hacktricks/src/pentesting-web/account-takeover.md

130 lines
5.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 账户接管
{{#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}}