Account Takeover
授权问题
应尝试更改账户的电子邮件,并必须检查确认过程。如果发现存在弱点,应将电子邮件更改为预期受害者的电子邮件,然后进行确认。
Unicode规范化问题
针对预期受害者的账户
victim@gmail.com
应使用Unicode创建一个账户 例如:
vićtim@gmail.com
有关更多详细信息,请参阅Unicode规范化文档:
重复使用重置令牌
如果目标系统允许重复使用重置链接,应努力使用工具如gau
、wayback
或scan.io
来查找更多重置链接。
账户接管前
应使用受害者的电子邮件在平台上注册,并设置密码(尽管无法访问受害者的电子邮件可能会使此操作变得不可能)。
应等待受害者使用OAuth注册并确认账户。
希望常规注册将被确认,从而允许访问受害者的账户。
CORS配置错误导致账户接管
如果页面包含CORS配置错误,您可能能够从用户那里窃取敏感信息以接管他的账户或让他更改认证信息以达到相同的目的:
CORS - Misconfigurations & BypassCsrf导致账户接管
如果页面容易受到CSRF攻击,您可能能够让用户修改他的密码、电子邮件或认证信息,以便随后访问:
CSRF (Cross Site Request Forgery)XSS导致账户接管
如果在应用程序中发现XSS漏洞,您可能能够窃取cookie、本地存储或网页信息,从而接管账户:
XSS (Cross Site Scripting)同源+Cookie
如果发现有限的XSS或子域接管,您可以操作cookie(例如固定它们)以尝试破坏受害者账户:
Cookies Hacking攻击密码重置机制
Reset/Forgotten Password Bypass响应操纵
如果认证响应可以简化为一个简单的布尔值,只需尝试将false更改为true,看看是否获得任何访问权限。
OAuth到账户接管
OAuth to Account takeover主机头注入
在发起密码重置请求时修改主机头。
将
X-Forwarded-For
代理头更改为attacker.com
。同时将主机、引用者和来源头更改为
attacker.com
。在发起密码重置后选择重新发送邮件时,应用所有上述方法。
响应操纵
代码操纵:将状态代码更改为
200 OK
。代码和主体操纵:
将状态代码更改为
200 OK
。将响应主体修改为
{"success":true}
或空对象{}
。
这些操纵技术在使用JSON进行数据传输和接收的情况下非常有效。
更改当前会话的电子邮件
来自此报告:
攻击者请求更改他的电子邮件为新的电子邮件
攻击者收到确认更改电子邮件的链接
攻击者将链接发送给受害者,以便他点击
受害者的电子邮件更改为攻击者指定的电子邮件
攻击者可以恢复密码并接管账户
这也发生在此报告中。
参考
最后更新于