WebGoat系列实验Access Control Flaws
WebGoat系列实验Access Control Flaws
Using an Access Control Matrix
- 在基于角色的访问控制策略中,每个角色都代表了一个访问权限的集合。一个用户可以分配一到多个角色。基于角色的访问控制策略通常由两部分组成:角色许可管理与角色分配。基于角色的访问控制策略受到破坏就可能允许用户进行访问本不属于他的角色,或者以某种方式提升未经授权角色的特权。
- 依次选择Moe、Larry、Curly、Shemp尝试访问Account Manager资源,发现Larry具有访问权限。
Bypass a Path Based Access Control Scheme
- “guest”用户可以访问lessonPlans/en目录下所有文件。尝试打破访问控制策略并获取其他目录下的资源。本实验需要获取WEB-INF/spring-security.xml文件。
- 选择BackDoors.html文件,点击View File按钮,显示消息如下,表明可以正常访问当前目录下的文件。
- 设置代理端口,并使用Burp开启拦截http请求报文。再次选择BackDoors.html文件,点击View File按钮,此时可以获取到GET请求报文。
- 经过尝试,把BackDoors.html修改为../../../../../WEB-INF/spring-security.xml之后可以成功访问。
LAB: Role Based Access Control
Stage 1: Bypass Presentational Layer Access Control.
- 作为雇员Tom,突破弱访问控制并在职员列表中使用删除命令,验证Tom的简介可以被删除。
- 选择hr Jerry,登录后发现可以使用DeleteProfile命令。使用Burp进行拦截,点击DeleteProfile按钮,截获GET请求报文。分析action字段,发现进行删除操作的参数是DeleteProfile,之后就可以将这个请求报文丢弃掉了2333。
- 选择用户Tom进行登录,登录后发现只能进行ViewProfile操作。使用Burp进行拦截,在拦截的GET请求报文中将action字段的ViewProfile参数修改为DeleteProfile,发送报文,Tom的个人简介就被删除了。
Stage 2: Add Business Layer Access Control
THIS LESSON ONLY WORKS WITH THE DEVELOPER VERSION OF WEBGOAT
Stage 3: Breaking Data Layer Access Control
- 作为雇员Tom,突破弱访问控制查看其它雇员的简介。
- 选择用户Tom进行登录,点击ViewProfile按钮向服务器发送查看Tom自己简介的请求。使用Burp进行拦截,分析拦截的GET请求报文,发现employee_id字段的参数为105。
- 随便修改employee_id字段的参数,比如107,发送GET请求报文后发现页面返回了雇员David的个人简介。
Stage 4: Add Data Layer Access Control
THIS LESSON ONLY WORKS WITH THE DEVELOPER VERSION OF WEBGOAT