漏洞挖掘 | 通过一个简单的注册漏洞获取任意账户访问权限

漏洞挖掘 | 通过一个简单的注册漏洞获取任意账户访问权限

白帽子左一 白帽子左一 2024-11-28 04:01

扫码领资料

获网安教程

Track安全社区投稿~

赢千元稿费!还有保底奖励~(https://bbs.zkaq.cn)

分享我某个外部项目中测试一个应用程序的安全性时遇到的一个独特场景。通过该漏洞,能够绕过邮箱验证,并通过注册流程中的一个缺陷接管任意用户或员工的账户。

在这篇文章中,将逐步介绍发现该漏洞的整个过程,分析网站的工作流程,并揭示每个被忽视的细节如何共同导致了一个重大的安全漏洞。我们将详细解剖绕过邮箱验证的方法,如何接管账户,以及最终揭示这一问题可能带来的风险。

这家公司为企业和组织提供工具,帮助它们围绕产品建立、管理和促进在线社区的互动。

注册流程的深入分析:

首先,我希望更深入地了解注册流程以及开发人员是如何构建它的。因此,我注册了一个14天的免费试用来创建社区。

img

在此过程中,我发现,要完成账户设置并创建一个社区,我需要输入发送到我邮箱的OTP(一次性密码)。

img

这听起来挺不错,但我有一些技巧可以在创建社区时绕过邮箱验证。因此,我决定测试一下,使用该公司的域名注册了一个虚假的邮箱地址,例如 
[email protected][1]。

img

就这样,我成功绕过了验证,系统直接将我重定向到社区设置页面。

img

一个小漏洞藏在这里,但现在是时候进行更深入的挖掘了!

在成功使用我的第一个邮箱 
[email protected][2]注册后,我决定看看是否能够接管它。:))

img

首先,我尝试通过使用另一个邮箱 
[email protected][3] 来覆盖我的邮箱,稍微修改了一下,比如
[email protected][4]。但正如我预料的那样,这次尝试失败了。

img

然而,还有一个简单的方法可以覆盖账户——通过使用与受害者邮箱相同的邮箱 
[email protected][5],但稍作修改,比如 
[email protected][6]。接下来我们来看看会发生什么!

img

哈哈… 它甚至没有告诉我“该邮箱已存在”。相反,它直接提示我输入OTP!

img

接下来,我试着使用我的假员工邮箱 
[email protected][7],稍微修改一下,看看是否能像第一次那样绕过OTP提示。(如果成功就太棒了!)

但没想到,他们让我在这里也输入了OTP,完全出乎我的预料。

img

于是,我决定看看是否能以某种方式绕过这个页面。

经过一会儿,我意识到这里没有实施速率限制。

img

另一个惊喜是:当我查看发送到我的测试账户 
[email protected][8] 的OTP时,我发现这个OTP居然没有过期时间。

img

绕过OTP后,我能够轻松地接管任何用户或员工的账户,毫无困难。

img

结论:

总而言之,这个漏洞展示了一个简单的注册流程缺陷是如何导致轻松的账户接管(ATO)攻击的。通过绕过邮箱验证并利用诸如缺乏速率限制和OTP过期时间的问题,我能够轻松接管任何用户或员工的账户。我还发现,通过稍微修改邮箱地址,例如使用
[email protected][9] 或 
[email protected][10] 的变体,我可以覆盖一个已有账户并完全绕过验证流程。这让我能够成功接管账户,几乎没有遇到任何重大障碍。这凸显了即使是注册流程中的小小疏忽,也可能导致重大的安全风险。

以上内容由白帽子左一
翻译并整理。
原文:https://0d-amr.medium.com/account-takeover-how-i-gained-access-to-any-user-account-through-a-simple-registration-flaw-96f9f6bdc0ae

声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学**习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。所有渗透都需获取授权!

如果你是一个网络安全爱好者,欢迎加入我的知识星球:zk安全知识星球,我们一起进步一起学习。星球不定期会分享一些前沿漏洞,每周安全面试经验、SRC实战纪实等文章分享,微信识别二维码,即可加入。