Account Takeover
Tip
学习和实践 AWS 黑客技术:
HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
学习和实践 Azure 黑客技术:
HackTricks Training Azure Red Team Expert (AzRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。
Authorization Issue
应该尝试更改帐户的 email,并且必须检查确认流程的实现。如果确认流程被发现薄弱,应将 email 更改为目标受害者的并完成确认。
Unicode Normalization Issue
- 目标受害者的账号为
victim@gmail.com - 使用 Unicode 创建一个账号,例如:
vićtim@gmail.com
如 this talk 所述,上述攻击也可以通过滥用第三方 identity provider 实现:
- 在第三方 identity provider 上使用含有相似 email 的 Unicode 字符创建账号(
vićtim@company.com)。 - 第三方 provider 不应验证该 email。
- 如果 identity provider 验证 email,也许可以攻击域名部分,例如:
victim@ćompany.com,注册该域名并希望 identity provider 生成域名的 ascii 版本,而受害者平台对域名进行不同的 normalize。 - 通过该 identity provider 登录受害者平台,受害者平台应该对 unicode 字符做 normalize 并允许你访问受害者账号。
有关详细信息,请参阅关于 Unicode Normalization 的文档:
Reusing Reset Token
如果目标系统允许重置链接被重复使用,应尝试使用 gau、wayback 或 scan.io 等工具查找更多重置链接。
Pre Account Takeover
- 使用受害者的 email 在平台上注册账号,并设置一个 password(应尝试确认该账号,但无法访问受害者邮箱可能会使其无法完成)。
- 等待受害者使用 OAuth 注册并确认账号。
- 希望常规注册能被确认,从而允许访问受害者账号。
CORS Misconfiguration to Account Takeover
如果页面有 CORS misconfigurations,你可能能够从用户处窃取敏感信息以接管其账号或让其更改认证信息以达到同样目的:
CORS - Misconfigurations & Bypass
Csrf to Account Takeover
如果页面存在 CSRF 漏洞,你可能能够让用户修改其 password、email 或认证信息,这样你之后就能访问该账号:
CSRF (Cross Site Request Forgery)
XSS to Account Takeover
如果你在应用中发现 XSS,可能能够窃取 cookies、local storage,或页面上的信息,从而允许你接管账号:
Same Origin + Cookies
如果你发现有限的 XSS 或子域接管,你可以利用 cookies(例如进行 fixating)来尝试破坏受害者账号:
Attacking Password Reset Mechanism
Reset/Forgotten Password Bypass
Security-question resets that trust client-supplied usernames
如果 “update security questions” 流程接受一个 username 参数,即便调用者已经通过认证,你仍然可以覆盖任何账号的恢复数据(包括管理员),因为后端通常会用你不可信的值执行 UPDATE ... WHERE user_name = ?。模式如下:
- 使用一个弃用用户登录并捕获 session cookie。
- 通过重置表单提交受害者的 username 加上新的答案。
- 立即通过 security-question 登录端点使用你刚注入的答案进行认证,以继承受害者的权限。
POST /reset.php HTTP/1.1
Host: file.era.htb
Cookie: PHPSESSID=<low-priv>
Content-Type: application/x-www-form-urlencoded
username=admin_ef01cab31aa&new_answer1=A&new_answer2=B&new_answer3=C
Anything gated by the victim’s $_SESSION context (admin dashboards, dangerous stream-wrapper features, etc.) is now exposed without touching the real answers.
Enumerated usernames can then be targeted via the overwrite technique above or reused against ancillary services (FTP/SSH password spraying).
Response Manipulation
If the authentication response could be reduced to a simple boolean just try to change false to true and see if you get any access.
OAuth to Account takeover
Host Header Injection
- 在发起密码重置请求后修改 Host header。
- 将
X-Forwarded-For代理头修改为attacker.com。 - 将 Host、Referrer 和 Origin 头同时改为
attacker.com。 - 在发起密码重置并选择重发邮件时,采用上述三种方法。
Response Manipulation
- Code Manipulation:将状态码改为
200 OK。 - Code and Body Manipulation:
- 将状态码改为
200 OK。 - 将响应体改为
{"success":true}或空对象{}。
这些操控技术在使用 JSON 进行数据传输与接收的场景中非常有效。
更改当前会话的电子邮件
From this report:
- 攻击者请求将自己的邮箱更改为一个新邮箱
- 攻击者收到一个确认更改邮箱的链接
- 攻击者将该链接发送给受害者,诱使其点击
- 受害者的邮箱被更改为攻击者指定的邮箱
- 攻击者可以重置密码并接管账户
This also happened in this report.
Bypass email verification for Account Takeover
- 攻击者使用 attacker@test.com 登录并在注册时验证邮箱。
- 攻击者将已验证的邮箱改为 victim@test.com(更改邮箱时没有二次验证)
- 现在网站允许 victim@test.com 登录,我们已经绕过了受害者用户的邮箱验证。
Old Cookies
As explained in this post, it was possible to login into an account, save the cookies as an authenticated user, logout, and then login again.
With the new login, although different cookies might be generated the old ones became to work again.
参考资料
- https://infosecwriteups.com/firing-8-account-takeover-methods-77e892099050
- https://dynnyd20.medium.com/one-click-account-take-over-e500929656ea
- 0xdf – HTB Era: security-question IDOR & username oracle
Tip
学习和实践 AWS 黑客技术:
HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
学习和实践 Azure 黑客技术:
HackTricks Training Azure Red Team Expert (AzRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。
HackTricks

