未经许可,不得转载。
文章目录
- 正文
正文
一款学习型 Web 应用,具有多个角色,其中两个相关角色是admin
和student
。
管理员拥有完全访问权限,而学生拥有有限的访问权限。管理面板中的一项功能允许管理员通过 CSV 方便地导入用户(系统提供了示例 CSV 文件)。
进入管理员界面,通过此导入功能添加一个用户并拦截请求,并将管理员会话令牌替换为学生的令牌。最终导入成功,新用户已被邀请加入平台。
这意味着该系统存在 BOLA/IDOR 问题。
我接下来做的是仔细查看有问题的请求的参数,这让我了解到一个名为 willUpdate
的参数被设置为true。这让我想到,可以利用这个参数通过相同的CSV导入功能来更新现有用户。如果将email
参数设置为已经存在于平台上的值(电子邮件),那么对应的用户信息将会被更新。
因此,使用学生的会话令牌,我将请求包内容修改为我的注册邮箱,并将willUpdate
参数被设置为 true,role参数设置为admin,发送请求包:
刷新学生仪表板页面时,弹出一大堆管理功能。因此,我将自己权限升级到admin
。
参考链接:
https://cristivlad.medium.com/privilege-escalation-to-admin-through-an-import-feature-ac8ac6b6abad
mport-feature-ac8ac6b6abad