0x30 访问控制与越权漏洞(一)
在实验开始之前,我们先来介绍一下什么是访问控制:访问控制被破坏是一个常见的且严重的业务逻辑安全漏洞,由于访问控制的设计和管理是一个复杂的动态问题,它将业务、组织和法律约束应用到技术实现中,因此导致出现错误的可能性也增加了,访问控制的设计决策应该由人而不是技术来做出。
BP学院中也对访问控制进行了详尽的分类:
在实际的应用场景中,访问控制通过两个方式实现:身份验证和会话管理
以上两种又可以细分为三个方面:
身份验证:识别用户并确认用户没有伪造自己的身份
会话管理:识别同一用户正在发出哪些后续HTTP请求
访问控制:决定是否允许用户执行他们试图执行的操作
从用户的角度来看,访问控制可以分为以下几类:
垂直的访问控制:不同权限的用户可以访问不同的应用程序功能,例如管理员和普通用户
水平的访问控制:将资源的访问限制为特定的用户,例如银行应用程序将允许用户从自己的帐户查看交易和付款,但不允许查看其他用户的帐户
内容相关的访问控制:根据应用程序的状态或用户与它的交互来限制对功能和资源的访问,此种控制可以防止用户以错误的顺序执行操作。例如,零售网站可能阻止用户在付款后修改购物车的内容。
此类漏洞往往与应用程序本身的业务逻辑密切相关,因此需要熟悉应用的各部分功能以进行详细测试,结合实验也更能方便我们理解访问控制中容易存在的问题。
实验内容
实验一:未受保护的管理功能页面
实验要求:删除carlos账户
实验提示:可以通过robots文件发现此实验环境存在一个不受保护的admin面板
robots文件相信大家都比较熟悉,这里再简单介绍一下:robots.txt文件中可以定义不允许搜索引擎爬取的网站路径,是一种协定的规则(君子协定),但这也往往存在敏感路径泄露的问题,所以在分析一些网站时可以从这入手
https://ac0d1f5d1f239119801b550900ea0043.web-security-academy.net/robots.txt
直接访问robots.txt文件就可以看到admin面板的路径
访问 /administrator-panel路径,删除carlos账户删除文件
我们再来尝试一下通用的目录发现方法
首先配置cookie jar,使用Burpsuite的Content Discovery功能,详细配置方式可以查看这一篇:https://bbs.ichunqiu.com