一封随意的邮件如何让我发现了别人的租户——未经授权的个人信息访问

admin 2026-05-23 05:00:38 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文通过实战案例揭示某多租户SaaS系统因注册时自动匹配邮箱域名与现有租户的漏洞,导致使用公共邮箱域(如yopmail.com)注册的用户能直接访问其他租户成员的个人信息(包括姓名、电话、地址等)。核心问题在于系统未验证域名所有权即默认为同租户成员,暴露了租户隔离设计缺陷。作者建议测试时关注注册返回数据,并指出公共邮箱域名可作为租户模型安全性的检测指标。 综合评分: 85 文章分类: 漏洞分析,实战经验,WEB安全,应用安全,数据安全


请按回车或点击查看全尺寸图片

15个用户的信息回来了。

他们全都在《@yopmail.com》。所有邮件都有邮箱、全名、电话号码(大多数是“+91”,有些是“+1”)、职位名称和最后一次活跃时间戳。其中一个有完整的项目记录。姓名、街道地址、邮政编码、城市、州和地理位置坐标(纬度/±ng)。

这些是别人的测试账户。有些看起来像是内部质量控制。有些看起来像是其他虫猎人在戳同一个目标。其中一个名字里存储了一个XSS有效载荷(“Test‘),这又是另一个等待发现的发现。

我用一个匿名邮箱注册,点击了一个验证链接,并阅读了另外十五个人的联系方式。零剥削。零授权绕过。一点巧妙的载荷都没有。直接注册吧。

## 为什么这有效

应用中每个租户都有一个“company.domain”字段。当有人注册时,后台会查询“是否有现有租户的’域名’与注册邮件的域名匹配?”如果有,它会默默地将新用户加入该租户。没有邀请。没有管理员批准。没有证据证明你实际上拥有那个域名。

某个时候,有人创建了一个“测试”公司,并在上面写了“域名:”yopmail.com“。大概是开发者觉得没人会注意到。从那时起,所有YOPMAIL注册都会自动合并。

这就是明显的失败。

## 为什么比看起来更糟

YOPMAIL的箱子是我可以安全摔倒的。我加入的租户里有很多其他测试人员,所以泄露对测试人员来说是可见的,很快就能察觉,对真正的客户来说并没有造成隐私灾难。

有趣的失败在于它对称的一切。

## 报告

繁衍步骤是最无聊的部分,因为几乎没什么可做的。

我在高中写了。CVSS 7.5。OWASP的框架是A01破损访问控制和A04不安全设计,但说实话,称之为“访问控制”有点低估了它。门禁系统技术上是正常工作的。问题是系统根据我“@”后面的字符串*决定*我是别人的群组成员。

  1. 注册
curl -s -X POST 'https://api.vulnerable.com/api/v1/users/register' \
  -H 'Content-Type: application/json' \
  -d '{
"email":"[email protected]",
"password":"Your Strong Password",
"firstName":"time",
"lastName":"test",
"jobTitle":"QA"
  }'

2. 点击@yopmail收件箱中的验证链接。

3. 登录。回复中的公司ID不是你的。

TOKEN=$(curl -s -X POST 'https://api.vulnerable.com/api/v4/users/signin' \
  -H 'Content-Type: application/json' \
  -d '{"email":"[email protected]","password":"Your Strong Password"}' \
  | jq -r '.result.token')

4. 阅读你被合并的租户团队名单。

curl -s 'https://api.vulnerable.com/api/v4/enterprise/users' \
-H "Authorization: Bearer $TOKEN" \
-H 'x-company-id: 152734'

Result: You guys will get the all PII information from the tenet.

5. 结果:你们将从租户那里获得所有个人身份信息。

## 我从中得到了什么

  1. 请阅读报名回复:

    我差点关掉标签页。我差点就进入“真正”的测试阶段了。Burp,模糊端点,寻找深度流中的IDOR。整个bug都在我从“POST /signin”收到的JSON文件里,那个文件是纯文本,比我的账户早四个月。

  2. 无聊并不无聊:

    多租户隔离是每个SaaS都坚称自己做对了,但实际上一半的SaaS却犯错,直到有人用正确的邮箱注册后才会察觉。YOPMAIL是个很棒的金丝雀。如果公共邮箱域名悄无声息地将你加入租户,那就是租户模型存在问题。

  3. Yopmail的租户恰好在我能看到的地方。

console.log("Thank You");
  • 公众号:安全狗的自我修养

  • vx:2207344074

  • http://gitee.com/haidragon

  • http://github.com/haidragon

  • bilibili:haidragonx



免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:安全狗的自我修养 haidragon haidragon《一封随意的邮件如何让我发现了别人的租户——未经授权的个人信息访问》

评论:0   参与:  0