关注公众号,阅读优质好文。
漏洞1
在对某目标系统进行安全测试时,发现其运行着两个独立的域名——一个用于司机用户,一个用于开发者/企业用户。表面上看,这两个域名各自独立管理账户,但测试表明它们在处理电子邮件变更时存在严重的逻辑漏洞。
正文
目标系统存在两个子域:
-
example.com(司机门户)
-
dev.example.com(开发者门户)
在司机门户中,电子邮件更改功能缺乏验证,无需确认邮件即可完成更改。
漏洞步骤
1、创建两个账户
User1(司机账户):使用 [email protected] 在 example.com 上注册。
User2(开发者账户):使用 [email protected] 在 dev.example.com 上注册。
由于测试需要,两个账户均未启用 2FA。
2、请求密码重置链接
在 example.com 上,针对 [email protected] 请求一个密码重置链接。
3、更改司机账户的邮箱地址
登录 example.com 司机账户。在账户设置中,将 [email protected] 更改为 [email protected](即开发者账户的邮箱)。变更立即生效,系统未发送任何确认邮件或进行任何验证。
4、利用旧密码重置链接进行账户接管
使用之前获取的密码重置链接,针对之前的邮箱执行密码重置。由于该链接未失效,重置成功,攻击者可直接设置新密码。
5、开发者账户失效
尝试在 dev.example.com 使用 [email protected] 登录开发者账户时,发现该账户已无法访问。
漏洞成因
1、邮箱变更无需用户确认,攻击者可随意更改账户邮箱。
2、邮箱更改后,已有的重置链接仍然有效,允许攻击者在邮箱变更后继续利用旧链接重置密码。
3、系统在尝试强制邮箱唯一性时,可能会错误地删除或禁用原账户。
漏洞2
目标URL:REDACTED.google.com。
为了深入了解其功能,我查阅了 developer.google.com 上的相关文档,并开始进行测试。
在测试过程中,我发现了一个 XSS 漏洞,但它触发的域名是经过正确沙盒化的 *.googleusercontent.com,这符合 Google 的安全策略,因此不被视为有效漏洞。
接着,我偶然发现了一个功能,该功能允许用户从 Google Drive 导入文件,并且能够正常工作。当我使用 Burp Suite 拦截该请求时,我注意到请求中使用了 docId 作为参数,用于标识用户选择的 Google Drive 文件 ID:
我注意到 docId 出现在 Google Drive 文件的 URL 中,大致如下:
https://drive.google.com/open?id=18TrUTt3SI3fmKNut8SREDACTED
该请求会返回一个 JSON 响应,其中包含一个 token 和我们选择的文件的 标题。我将其发送到 Repeater 并开始尝试修改请求。
那么,如果我修改 docId,使用其他用户的私有文件 ID,会发生什么?
在Drive中,我们可以通过更改权限设置,使 Google Drive 文件变为私有。如果其他用户想要访问该文件,他们必须向文件所有者请求访问权限。
于是,我在另一个账户上创建了一个私有文件,然后将其文件 ID 填入 docId 参数中。
服务器返回了 200 响应,并附带了 token 和文件名,即使请求者本不应该拥有该私有文件的访问权限。
说实话,我并没有指望能拿到赏金,毕竟这个漏洞相对简单。要利用它,我必须事先知道文件 ID,而这个 ID 本身是一个较长的随机令牌。此外,我最多只能获取文件名和文件类型,无法直接访问文件内容。
三周后,我的报告被评估为 $3,133.70。我想,他们可能在内部发现了更严重的问题。
培训咨询v
bc52013 或 linglongsec
SRC漏洞挖掘培训
往期漏洞分享
玲珑安全B站公开课
https://space.bilibili.com/602205041
玲珑安全QQ群
191400300
原文始发于微信公众号(芳华绝代安全团队):分享两个漏洞,含$3133 Google IDOR
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论