官网:http://securitytech.cc/
特权升级(查看者 → 所有者)— 绕过他们修复的方法
特权升级漏洞 是一种安全缺陷,它允许某个用户获取比应有权限更高的权限。换言之,它使得权限受限的用户可以执行本应只有更高权限用户(比如管理员或所有者)才能做的操作,可能会因此未经授权地控制数据、设置,甚至整个系统。我在一个创业融资平台上发现了这样一个漏洞:可以把自己从 Viewer(查看者) 升级为 Owner(所有者)。在该问题修复后,我又找到了一个绕过修复的方法,并负责任地披露了该问题。
按回车或点击查看大图

该平台允许用户创建初创公司并管理团队。邀请成员时会分配角色:Viewer、Editor 或 Owner。Owner 拥有全部控制权。
事情从一件看似完全正常的事开始。我在浏览管理后台,检查用户管理、访问控制和权限等功能。表面上没什么异常。
然后我注意到一个细微之处 —— 当 Owner 邀请我作为 Viewer(最低权限)时,同时还有一个面向另一个用户的待处理 Owner 邀请,那条 Owner 邀请链接仍然存在:
https://example.com/invitations/{hash_token}
按回车或点击查看大图

我想到了一个念头:如果我尝试使用这条链接以另一个人的身份加入会怎样?一开始系统会阻止我,要求我用被邀请用户的账号登录。
经过进一步的策划和测试,我拦截了这个请求:
GET /invitations/{invitation_token}
按回车或点击查看大图

通过拦截响应,我看到了被邀请 Owner 的邮箱和角色。我在响应中把邮箱改成了我之前用 Google 在同一浏览器上注册过的邮箱,然后继续后续流程。