欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

WebGoat笔记之二 --- Access Control Flaws

程序员文章站 2022-03-11 15:19:01
主要内容: Access Control Flaws 访问控制缺陷,这个栏目下的Bug属于将业务的关键逻辑放在了前台,而后台也没有作相应的校验,导致用户可以通过修改前台页面,跳过验证逻辑操...
主要内容:

Access Control Flaws

访问控制缺陷,这个栏目下的Bug属于将业务的关键逻辑放在了前台,而后台也没有作相应的校验,导致用户可以通过修改前台页面,跳过验证逻辑操作后台数据

Using an Access Control Matrix

Bypass a Path Based Access Control Scheme

LAB: Role Based Access Control 3

Stage 1: Bypass Business Layer Access Control 3

Using an Access Control Matrix

这个Bug属于程序员在作权限控制时的失误,题目提示:

Only the [Admin] group should have access to the 'Account Manager' resource.

WebGoat笔记之二 --- Access Control Flaws

分析

这道题的目的是想让我们找出不是Admin但是能访问'Account Manager' resource的人

方法

而我们的攻击方式就是不断的尝试user和resoure的组合

发现Larry用户的身份是 [User, Manager],访问Account Manager权限时竟然被验证通过了

Bypass a Path Based Access Control Scheme

在这一题里面我们有一个文件列表,点击“View File”可以访问相应的文件,“Current Directory is:”告诉了我们文件的绝对路径,我们的目的是访问一个不在文件列表中的一个数据,比如tomcat/conf/tomcat-users.xml

WebGoat笔记之二 --- Access Control Flaws

分析

程序访问的文件的方式应该是目录路径:

/usr/local/services/WebGoat/tomcat/webapps/webgoat/lesson_plans/English

接上我们选择的文件名称,而我们要访问的文件是:

/usr/local/services/WebGoat/tomcat/conf/tomcat-users.xml

我们要从English文件夹访问到conf文件夹中的内容,那只有使用相对路径了,所以

/usr/local/services/WebGoat/tomcat/webapps/webgoat/lesson_plans/English/http://www.cnblogs.com/http://www.cnblogs.com/conf/tomcat-users.xml

所以我们的目的就是向后台提交文件名http://www.cnblogs.com/http://www.cnblogs.com/conf/tomcat-users.xml

方法

我们用启动FireBug用页面查找找到Select的第一个选项AccessControlMatrix.html,它的值为

<option label="AccessControlMatrix.html" value="AccessControlMatrix.html">

AccessControlMatrix.html</option>

当我们点击“View File”按钮的时候,提交的就是选中option的value,所以我们把

AccessControlMatrix.html选项的value改成http://www.cnblogs.com/http://www.cnblogs.com/conf/tomcat-users.xml

这样选中AccessControlMatrix.html点“View File”的时候

提交的值就是我们想要的http://www.cnblogs.com/http://www.cnblogs.com/conf/tomcat-users.xml

WebGoat笔记之二 --- Access Control Flaws

LAB: Role Based Access Control

这道题有4个步骤,每一步解题方式都类似,下面以第一小题为例

Stage 1: Bypass Business Layer Access Control

这一题需要登陆后操作,根据题目的提示,每一个用户的密码是用户名开头的字母小写,比如用户Larry Stooge (employee)的密码就是larry, Moe Stooge (manager)用户的密码就是moe。

我们登陆Tom Cat用户

WebGoat笔记之二 --- Access Control Flaws

由于Tom Cat只是普通员工,无法查看,也不能删除其他用户的信息,而我们的目的是要利用Tom用户突破权限限制,删除某个员工的信息

分析

这个题目应该是把用户权限校验放在了前台,用户提交请求后,后台也没有验证用户的权限,导致用户可以越权操作。要执行删除操作,首先我们得找到删除请求CGI的名称,所以我们得找一个有删除权限的用户,找到删除CGI,然后登陆Tom提交删除请求~

方法

登陆hr Jerry Mouse,发现

WebGoat笔记之二 --- Access Control Flaws

Jerry有删除用户信息的权限,我们用元素查找工具把这个Button的代码找到

WebGoat笔记之二 --- Access Control Flaws

“DeleteProfile”的内容如下,记录下来

<input type="submit" value="DeleteProfile" name="action">

这时,我们重新登陆Tom Cat用户,

WebGoat笔记之二 --- Access Control Flaws

把<input type="submit" value="SearchStaff" name="action">

改成<input type="submit" value="DeleteProfile" name="action">

选择Tom Cat,点击WebGoat笔记之二 --- Access Control Flaws

完成任务~,利用同样的操作,如果我们想删除其他人信息怎么办呢?

下面同理可得

Stage 2: Add Business Layer Access Control

Stage 3: Bypass Data Layer Access Control

Stage 4: Add Data Layer Access Control

Remote Admin Access