访问控制

Webgoat

基于角色的访问控制(LAB: Role Based Access Control)

技术概念:一个基于角色的访问控制通常包括两个部分:角色权限管理和角色分配。一个被破坏的基于角色的访问控制方案,可能允许用户以没有分配他的角色或以某种方式获得的未经授权的角色进行访问。

操作方法:

Stage1:绕过表示层访问控制(Bypass Presentational Layer Access Control)

首先查找具有【DeleteProfile】权利的角色。通过登录每一个用户的帐号,先发现作为HR的Jerry具有【DeleteProfile】的权利,如图所示:

在Select from the list below 下方的列表中选中一个用户,然后点击【DeleteProfile】。通过抓包工具burpsuite可以截获向服务器发送的请求,如下图所示:

由上图可以看出 action 对应的 value 值是 DeleteProfile,即我们在 Tom 账户中任意选择 一种 action,将其对应的 value 值改为 DeleteProfile,则 Tom 就具有了 DeleteProfile 权利。首 先,登录 Tom 账户,最初的 Tom 账户如下图所示:

我们在Select from the list below 下方的列表中选中 Tom,然后点击【ViewProfile】,通过抓包工具 burpsuite将 Value 栏的 ViewProfile 改为 DeleteProfile

选择点击forward,会返回数据给浏览器,然后关掉抓包。出现如下图所示,表示攻击成功

在这里插入图片描述

Stage 3:绕过数据层访问控制(Breaking Data Layer Access Control)

登录Tom用户界面,在Select from the list below下选中Tom用户,然后点击ViewProfile, 正常页面如下所示:

即普通雇员 Tom 只可以查看自己的资料,利用burpsuite抓包工具截获请求,得到如下页面:

要想查看别人的资料,可以将 employee_id 的值改为 101(用户 Jarry 的 ID),修改之后点击forward。出现如下页面,则攻击成功

在这里插入图片描述

posted @ 2025-07-16 12:01  长温不喜风云  阅读(75)  评论(0)    收藏  举报