从2FA绕过到账户接管

admin 2024年10月21日13:16:02评论22 views字数 1765阅读5分53秒阅读模式

从2FA绕过到账户接管

前言

redacted.com是一个管理物联网项目、云解决方案、设备等的平台,其允许在一个用户账户下创建多个账户,并在知道其它用户电子邮件地址的情况下邀请他们加入项目。该网站支持灵活的账户注册,但每次注册都要求输入发送到企业电子邮件的一次性密码(OTP)进行验证。

从2FA绕过到账户接管

创建属于其他用户的账户

在个人主页的“创建新账户”功能引起了我的注意。用户可以为不同的管理项目创建多个不同的账户。在用户界面上,只需输入新账户的名称,即可即时创建。

从2FA绕过到账户接管

创建新账户的请求响应如下:

从2FA绕过到账户接管

可以看到,上图请求包会自动添加当前用户的邮箱,然而,当我使用受害者的电子邮件(例如[email protected])来创建账户时,我发现能够成功创建属于该用户的账户。

请求体如下:

{  "Name":"IamAttacker", //受害者的新账户  "Email":"[email protected]" //受害者}

从2FA绕过到账户接管

最后,受害者账户多出"IamAttacker"账户:

从2FA绕过到账户接管

经过进一步分析,我发现攻击者可以在受害用户中创建无限数量的账户。这些账户可以有不同的名称,甚至可能允许相同的名称。

绕过2FA

观察以下两张图,浏览器界面仅需输入名称即可创建我的新账户:

从2FA绕过到账户接管

但在请求包中附带了电子邮件:

从2FA绕过到账户接管

于是我推测可能存在一个隐藏参数。我尝试了常见参数以及我在响应中找到的参数,但都没有效果:

从2FA绕过到账户接管

经过多次尝试后,我发现添加password参数能够实现正确的响应:

从2FA绕过到账户接管

那么,此时我可以输入用户名密码实现登录吗?很遗憾,并不能。

从2FA绕过到账户接管

但当我使用未注册的电子邮件进行创建时,响应中出现了一个异常的现象:

从2FA绕过到账户接管

满足密码要求后,我发现sso_type的值为null:

从2FA绕过到账户接管

这应该意味着我能够直接登录而不需要通过电子邮件进行OTP验证,事实也是如此:

从2FA绕过到账户接管

那么此时,我们就绕过了2FA,既不需要邮箱验证码,也不需要企业验证码,即可成功创建一个账户。

账户接管

试想一场景:攻击者首先注册一个A账户,使用的密码如linglongsec;而受害者使用123456作为密码注册A账户。如果攻击者仍能使用旧密码linglongsec登录,那么攻击者便成功实现了账户接管。

刚才,我们已经通过添加新账户接口创建了该用户:[email protected],并且可登录。

但当我注册用户[email protected]时,提示我用户已存在:

从2FA绕过到账户接管

通过不断分析,我发现了一个可以传入email参数的API,如果响应中的sso_type为1,则表示该用户通过电子邮件验证;而如果sso_type为null,则表示未通过验证。

从2FA绕过到账户接管

从2FA绕过到账户接管

同时,如果sso_type为1,我们将被重定向到sso.redacted.com登录;如果为null,则重定向到store.redacted.com登录。

未经过电子邮件认证的用户有一个“账户迁移”功能。由于新创建的[email protected]用户的sso_type为null,因此我能够成功将其迁移:

从2FA绕过到账户接管

而现在,该邮箱居然可以注册了:

从2FA绕过到账户接管

我使用与我之前使用的密码不同的密码注册了该[email protected]用户,并像往常一样验证了 OTP。注册该用户后,我发现可以使用旧密码登录此账户:

从2FA绕过到账户接管

现在,我们已经成功实现同一个帐户两个密码共存的 Pre-ATO 了。我画了这张图来理清楚逻辑:

从2FA绕过到账户接管

1、普通用户只能在SSO数据库中注册。

2、只有授权个人(具有特殊角色)才能在Store中创建帐户,并且“账户迁移”功能会将该电子邮件迁移到该普通用户的SSO。

3、如果首先在Store中创建用户,我们可以使用“账户迁移”功能将数据迁移到SSO ,并且可以在Store和SSO登录。

4、如果首先在SSO中创建帐户,则用户只能在SSO登录,并且只能使用第一次注册时的密码。

总结:利用该漏洞可以在Store数据库中预先注册受害者账户。随后,登录该账户并使用迁移功能将其转移到SSO数据库,等待受害者注册该账户。受害者正常使用账户时,我们仍可以在SSO登录并访问所有资源。

原文出处

https://giongfnef.medium.com/business-logic-bypass-2fa-to-ato-e0dc7131b10e

从2FA绕过到账户接管

原文始发于微信公众号(玲珑安全):从2FA绕过到账户接管

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月21日13:16:02
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   从2FA绕过到账户接管https://cn-sec.com/archives/3294740.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息