本文所述漏洞均已修复,未经授权请勿进行非法渗透测试。
原文出处:https://sallam.gitbook.io/sec-88/write-ups/how-a-simple-click-can-lead-to-account-takeover-an-oauth-insecure-implementation-vulnerability
引言
在最近对 HackerOne 上某私有项目进行安全评估时,我发现了一个高危的一键账户接管漏洞。该公司有多个域名在评估范围内,其中 Target1.com 为主要域名,而 Target2.com 实现了 OAuth 系统,允许用户通过“使用 Target1.com 登录”功能访问。电子邮件确认机制中的此漏洞使攻击者能够在受害者几乎无需操作的情况下劫持其账户。
漏洞详情
受影响的域名包括:
-
target1.com(主要域名)
-
target2.com
Target2.com 使用 OAuth 进行用户身份验证,允许用户使用 Target1.com 的凭证登录。以下是该漏洞的逐步分析:
1.受害者在 Target1.com 注册:受害者使用自己的电子邮件地址(例如[email protected])在 Target1.com 上注册账户。
2.在 Target2.com 使用 OAuth 登录:受害者随后访问 Target2.com,并使用“使用 Target1.com 登录”的 OAuth 功能,成功使用 Target1.com 的凭证登录 Target2.com。
3.攻击者在 Target2.com 注册:攻击者得知受害者的电子邮件地址([email protected])后,访问 Target2.com,并使用该邮箱注册一个新账户,同时在注册过程中设置任意密码。
4.电子邮件确认:Target2.com 会向受害者的邮箱发送确认邮件,该邮件看起来合法,并来自公司官方邮件域名。
5.受害者点击确认链接:如果受害者点击邮件中的确认链接,认为这是无害操作,攻击者的注册流程就会完成。
6.账户接管:此时,攻击者可以使用受害者的电子邮件地址和在注册过程中设置的密码登录 Target2.com,从而访问受害者在 Target2.com 上的所有数据和功能。
利用场景示例
1.受害者 Jane Doe 使用邮箱 [email protected] 在 Target1.com 注册,然后通过 OAuth 成功登录 Target2.com。
2.攻击者 John Malicious 知道 Jane 的邮箱地址,他访问 Target2.com,使用 [email protected] 注册,并设置自己的密码。
3.Jane 收到 Target2.com 发来的确认邮件,请求确认新账户的邮箱地址。邮件看起来官方,于是她点击了确认链接。
4.John Malicious 现在使用 [email protected] 和自己设置的密码登录 Target2.com,获取 Jane 的账户访问权限及所有数据。
修复建议
1.确保 OAuth 登录的邮箱确认与普通账户注册的邮箱确认分开处理,以防止混淆。
2.为电子邮件验证实施针对具体操作类型(如账户注册与 OAuth 账户关联)的唯一令牌。
3.提高用户对钓鱼和社工攻击的警惕,提醒用户确认邮箱确认请求的具体上下文。
原文始发于微信公众号(玲珑安全):一次简单的点击,我的账户就被盗了
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-





评论