仍在房间里——移除权限后的未授权资产访问
我想分享一个经常被忽略的简单漏洞。
最初我以为这只是一个低悬果实——说实话,它确实是——但在多个程序中测试后,我很少收到重复报告。这时我意识到值得分享。
该漏洞允许组织的前成员在被移除后,仍能查看新上传的资产(如图像或代码文件)。虽然他们无法上传任何内容,但仍可以访问权限撤销后上传的文件。
发生这种情况是因为资产URL是公开可访问的——不需要身份验证。在分析资产URL的结构后,我发现即使不再是成员,我也可以使用一致的URL模式猜测新的文件链接。
URL格式通常如下:
|
|
那么这里发生了什么?
- 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 #网络安全 #渗透测试 #漏洞赏金技巧