移除权限后仍可访问:未授权资产泄露漏洞剖析

本文披露了一个常见的权限控制漏洞:即使用户已被移出组织,仍能通过可预测的URL结构访问新上传的敏感资产。文章详细分析了漏洞成因、URL结构规律,并强调了真正的安全不能依赖地址混淆。

仍在房间里——移除权限后的未授权资产访问

我想分享一个经常被忽略的简单漏洞。

最初我以为这只是一个低悬果实——说实话,它确实是——但在多个程序中测试后,我很少收到重复报告。这时我意识到值得分享。

该漏洞允许组织的前成员在被移除后,仍能查看新上传的资产(如图像或代码文件)。虽然他们无法上传任何内容,但仍可以访问权限撤销后上传的文件。

发生这种情况是因为资产URL是公开可访问的——不需要身份验证。在分析资产URL的结构后,我发现即使不再是成员,我也可以使用一致的URL模式猜测新的文件链接。

URL格式通常如下:

1
https://assets.example.com/org-uuid/project-uuid/asset-uuid/123456image.png

那么这里发生了什么?

  • org-uuid:这是组织的唯一标识符。只要引用同一组织的资产,它通常保持不变。
  • project-uuid:这是组织内特定项目的UUID。
  • asset-uuid:这代表资产容器——本质上是存储上传文件的文件夹或路径。我注意到每个项目都有一个固定的资产UUID,不会随时间改变。项目创建后,其中上传的所有文件都使用相同的asset-uuid。这使得曾经有访问权限的攻击者可以重用该UUID并猜测新的文件链接。
  • 123456image.png:这是实际的文件名。前缀123456通常是一个6位数字的文件ID,随着新文件的上传而顺序增加。这部分通常是可预测或可猜测的。

综合分析

分析URL结构后,我注意到org-uuid、project-uuid和asset-uuid总是相同的——只要文件在同一组织和项目下上传,它们就不会改变。

一旦理解了这一点,事情就变得容易多了。

由于这些UUID是静态的,链接中唯一动态的部分是文件ID——一个简单的6位数字。这意味着即使失去成员访问权限,我也可以暴力破解或仅猜测URL的最后部分来访问新上传的资产。

简而言之,我不需要猜测完整的URL——只需要文件ID。

结论

这个漏洞是一个清晰的例子,说明依赖 obscurity(如UUID或复杂URL)并不等同于真正的安全。对敏感文件的访问必须通过适当的身份验证和授权来保护,尤其是在用户角色变更或账户被移除时。

如果置之不理,这样简单的漏洞很容易导致数据泄漏和隐私问题。

保持警惕,永远不要低估小细节。

🔗 HackerOne: https://hackerone.com/0xoroot
🔗 LinkedIn: https://www.linkedin.com/in/0xammaryasser/

#BugBounty #Hackerone #网络安全 #渗透测试 #漏洞赏金技巧

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计