文章首发于个人博客:https://mybeibei.net,点击最下方“阅读原文”可直接跳转查看。
背景介绍国外一名白帽子(Bharat Singh)在渗透测试过程中发现一处 IDOR 漏洞,该网站因为未验证请求正文中的用户输入,从而导致可以获得超级管理员的访问权限,让我们开始今天的故事分享。 漏洞故事这位白帽子在实习期间要求测试客户的网络应用程序,这对于他来说是一次用来测试自身技能的绝佳机会,说不定可以在整个测试过程中获得一些有价值的东西。 该应用程序有不同用户角色的邀请功能,如管理员、营销人员、营销主管等等…… 白帽小哥首先创建了一个管理员帐户,并通过他的第二个电子邮件地址向自己发送了具有营销人员角色权限的邀请,然后通过其它浏览器窗口中接受该邀请,然后开始在管理员的窗口页面上尝试寻找有趣的东西。 首先发现只有管理员可以更改用户角色和其它配置文件详细信息。当去辑受邀用户个人资料选项时,发现该请求数据包很有趣,POST请求像下面这样: POST /user-management/update/123 如果通过修改这个“123”用户 ID 来更改其他人的个人资料数据会怎样呢?响应结果显示错误,果断失败。 再次进入用户配置文件编辑选项:
单击保存按钮然后在 Burp 中拦截该请求:
白帽小哥决定将请求中的“role_id”参数值改为“1”,期望它将被邀请的用户提升为管理员权限。 再次打开受邀用户(营销人员)窗口并刷新页面,果然现在的权限是超级管理员了! 漏洞影响攻击者可以获得超级管理员访问权限,这意味着攻击者可以访问、修改或删除应用程序中的任何数据,包括用户信息和敏感数据。
|