账户接管
Reading time: 8 minutes
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 来分享黑客技巧。
授权问题
应尝试更改账户的电子邮件,并且必须检查确认过程。如果发现确认过程较弱,则应将电子邮件更改为目标受害者的电子邮件并进行确认。
Unicode规范化问题
- 目标受害者的账户
victim@gmail.com
- 应使用Unicode创建一个账户
例如:vićtim@gmail.com
正如在这个演讲中所解释的,之前的攻击也可以通过滥用第三方身份提供者来实现:
- 在第三方身份提供者中创建一个与受害者相似的电子邮件账户,使用某些Unicode字符(
vićtim@company.com
)。 - 第三方提供者不应验证电子邮件。
- 如果身份提供者验证了电子邮件,您可以尝试攻击域名部分,例如:
victim@ćompany.com
,并注册该域名,希望身份提供者生成域名的ascii版本,而受害者平台规范化域名。 - 通过此身份提供者登录受害者平台,受害者平台应规范化Unicode字符并允许您访问受害者账户。
有关更多详细信息,请参阅关于Unicode规范化的文档:
重用重置令牌
如果目标系统允许重置链接被重用,应努力寻找更多重置链接,使用工具如gau
、wayback
或scan.io
。
预账户接管
- 应使用受害者的电子邮件在平台上注册,并设置密码(应尝试确认,尽管缺乏对受害者电子邮件的访问可能使这变得不可能)。
- 应等待受害者使用OAuth注册并确认账户。
- 希望常规注册将被确认,从而允许访问受害者的账户。
CORS配置错误导致账户接管
如果页面包含CORS配置错误,您可能能够窃取用户的敏感信息以接管他的账户或使他更改身份验证信息以达到同样的目的:
CORS - Misconfigurations & Bypass
CSRF导致账户接管
如果页面易受CSRF攻击,您可能能够使用户修改他的密码、电子邮件或身份验证,以便您可以访问它:
CSRF (Cross Site Request Forgery)
XSS导致账户接管
如果您在应用程序中发现XSS,您可能能够窃取cookies、local storage或网页信息,从而允许您接管账户:
同源 + Cookies
如果您发现有限的XSS或子域接管,您可以操作cookies(例如固定它们)以尝试妥协受害者账户:
攻击密码重置机制
Reset/Forgotten Password Bypass
响应操控
如果身份验证响应可以简化为一个简单的布尔值,只需尝试将false更改为true,看看您是否获得任何访问权限。
OAuth导致账户接管
主机头注入
- 在发起密码重置请求后,修改Host头。
- 将
X-Forwarded-For
代理头更改为attacker.com
。 - 同时将Host、Referrer和Origin头更改为
attacker.com
。 - 在发起密码重置并选择重新发送邮件后,采用上述三种方法。
响应操控
- 代码操控:将状态代码更改为
200 OK
。 - 代码和主体操控:
- 将状态代码更改为
200 OK
。 - 将响应主体修改为
{"success":true}
或一个空对象{}
。
这些操控技术在使用JSON进行数据传输和接收的场景中有效。
更改当前会话的电子邮件
来自此报告:
- 攻击者请求将其电子邮件更改为新的电子邮件。
- 攻击者收到确认更改电子邮件的链接。
- 攻击者将链接发送给受害者以便其点击。
- 受害者的电子邮件被更改为攻击者指示的电子邮件。
- 攻击者可以恢复密码并接管账户。
这也发生在此报告中。
绕过电子邮件验证以进行账户接管
- 攻击者使用attacker@test.com登录并在注册时验证电子邮件。
- 攻击者将已验证的电子邮件更改为victim@test.com(更改电子邮件时没有二次验证)。
- 现在网站允许victim@test.com登录,我们已绕过受害者用户的电子邮件验证。
旧Cookies
正如在这篇文章中所解释的,可以登录到一个账户,保存cookies作为已验证用户,注销,然后再次登录。
在新的登录中,尽管可能生成不同的cookies,但旧的cookies又开始工作。
参考文献
- https://infosecwriteups.com/firing-8-account-takeover-methods-77e892099050
- https://dynnyd20.medium.com/one-click-account-take-over-e500929656ea
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 来分享黑客技巧。