WebGoat-5.4实验笔记(3)

访问控制缺陷(Access Control Flaws)

1、使用访问控制模型(Using an Access Control Matrix)

技术概念:
在一个基于角色的访问控制方案中,角色代表了一组访问权限和特权。一个用户可以被分配一个或多个角色。一个基于角色的访问控制方案通常有两个部分组成:角色权限管理和角色分配。一个被破坏的基于角色的访问控制方案可能允许用户执行不允许他/她的被分配的角色,或以某种方式允许特权升级到未经授权的角色的访问。

操作方法:
先选择一个用户,再选择一个资源,然后点击【Check Access】,出现页面如下图所示:
在这里插入图片描述
上图红色字体所显示的意思是:公用用户 Moe 对资源 Public Share 有访问权限。接下来,保持用户不变,即 Change user 选项仍是 Moe,在 Select resource 选项中选中下一个资源 Time Card Entry,然后点击【Check Access】,出现页面如下所示:
在这里插入图片描述
上图此时红色字体提示的意思是:公用用户 Moe 不具有对资源 Time Card Entry的访问权限。依照上述方法直到检测到如下提示时:表示成功
在这里插入图片描述

2 、绕过基于路径的访问控制方案(Bypass a Path Based Access Control Scheme)

技术概念:
在一个基于路径的访问控制方案中,攻击者可以通过提供相对路径信息遍历路径。因此,攻击者可以使用相对路径访问那些通常任何人都不能直接访问或直接请求就会被拒绝的文件。

操作方法:
选中“Choose the file to view”列表下的任何一个文件,然后点击【View File】,用 burpsuite 工具截获向服务器发送的请求,如图所示:
在这里插入图片描述
在这里插入图片描述
在上图中 File 的值就是想要访问的文件名,修改此处,改为在目录 tomcat\conf\tomcat‐users.xml(对应两个路径,找出相同的目录tomcat,然后源目录向上级目录返回,返回一个目录加一个“…\”,直到返回至相同目录tomcat的下一级目录,添加上更改的目录名,即为修改目录。)
在这里插入图片描述
点击forward,返回200
在这里插入图片描述
在浏览器页面显示如下,表示攻击成功。
在这里插入图片描述

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

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

操作方法:
Stage 1: 绕过表示层访问控制(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 2: 添加业务层的访问控制(Add Business Layer Access Control)需要在 WebGoat 开发版本上完成。

Stage 3: 绕过数据层访问控制(Breaking Data Layer Access Control)
登录Tom用户界面,在Select from the list below下选中Tom用户,然后点击ViewProfile, 正常页面如下所示:
在这里插入图片描述
即普通雇员 Tom 只可以查看自己的资料,利用burpsuite抓包工具截获请求,得到如下页面:
在这里插入图片描述
要想查看别人的资料,可以将 employee_id 的值改为 101(用户 Jarry 的 ID),修改之后点击forward。出现如下页面,则攻击成功。
在这里插入图片描述

Stage 4: 添加数据层访问控制(Add Data Layer Access Control)课程需要在 WebGoat 开发版本上完成。

4 、远程管理访问(Remote Admin Access)

技术概念:
应用程序通常会有一个管理界面,这个界面一般用户无法访问到,只有具有特权的用户才能访问。

操作方法:
首先访问管理界面 URL 为在当前地址后添加&admin=true,打开”Admin functions”后,可 以看到有【Report Card】、【User Information】、【Product Information】、【Report Card】和【Adhoc Query】等选项。
在这里插入图片描述
选中 User Information,则会出现如下页面:
在这里插入图片描述

这是因为只有管理者才有权限查看 User Information,在当前地址后面添加&admin=true, 可得如下界面:
在这里插入图片描述
即我们可以看到用户的相关信息,而这些信息都是只有 admin 才可以看得,至此攻击成功,在 Access Control Flaws 中可以看到如下提示成功的页面:
在这里插入图片描述
总结:
在多用户情况下,我们需要对不同的用户分配不同的权限,并且进行相应的权限访问控制。如果系统对于用户提交的内容没有进行严格的审查,则会留下严重的安全隐患。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值