(漏洞检查项)|失效的访问控制 Broken Access Control
漏洞场景
失效的访问控制(Broken Access Control)漏洞发生在应用程序未能正确地限制用户对资源或操作的访问,从而允许未授权的用户访问或修改数据。
漏洞描述
失效的访问控制漏洞是由于应用程序未能正确实施访问控制策略,导致攻击者能够绕过权限检查,访问或修改本不应被其访问的数据或执行敏感操作。
漏洞原理
当应用程序未能有效地限制对资源的访问时,攻击者可以通过直接访问URL、操纵请求参数或利用其他技术手段绕过安全检查。这些漏洞通常由于缺乏后端验证、仅依赖于前端安全措施或配置不当而产生。
漏洞危害
- 攻击者可以访问其他用户的私人数据,导致数据泄露。
- 攻击者可以执行只有管理员才能执行的操作,导致数据篡改或服务中断。
- 攻击者可以通过目录遍历访问系统敏感文件,进一步提升攻击能力。
- 敏感功能被未授权用户访问,导致系统被破坏或滥用。
漏洞评级
高危
漏洞验证
-
测试水平权限提升:
- 登录为普通用户,记录当前用户的唯一标识(如用户ID)。
- 更改URL中的用户ID,尝试访问其他用户的数据。
- 例如:原始URL为
https://www.example.com/orders?order_id=1234
,更改为https://www.example.com/orders?order_id=1235
,检查是否能查看其他用户的订单信息。
-
测试垂直权限提升:
- 登录为普通用户,记录普通用户无法访问的管理员功能URL。
- 尝试直接访问管理员功能URL,检查是否能绕过权限限制。
- 例如:访问
https://www.example-cms.com/admin
,检查是否能够访问管理员页面。
-
测试目录遍历:
- 在输入框或URL中尝试使用目录遍历字符(如
../
),检查是否能访问系统敏感文件。 - 例如:访问
https://www.example.com/../../etc/passwd
,检查是否能读取系统文件。
- 在输入框或URL中尝试使用目录遍历字符(如
漏洞利用
- 水平权限提升利用: 攻击者可以通过修改请求参数,访问或修改其他用户的私人数据,进行数据盗窃或篡改。
- 垂直权限提升利用: 攻击者可以通过直接访问高级功能,执行只有管理员才能执行的操作,进行数据破坏或系统控制。
- 目录遍历利用: 攻击者可以通过目录遍历访问系统敏感文件,获取系统信息或执行进一步的攻击。
漏洞防御
- 后端权限验证: 在服务器端对每个请求进行严格的权限检查,确保用户只能访问或操作其有权限的资源。
- 最小权限原则: 只授予用户其所需的最低权限,避免不必要的权限授予。
- 安全编码实践: 避免在客户端存储或验证敏感信息,所有的访问控制逻辑应在服务器端实现。
- 目录遍历防护: 使用安全的文件路径处理库,避免用户输入直接用于文件路径拼接,同时对用户输入进行严格的验证和清理。
- 定期安全测试: 进行定期的安全测试,包括渗透测试和代码审计,及时发现和修复访问控制漏洞。
典型案例
DVWA越权导致RCE
Redis未授权访问