失效的访问控制
不同用户具有不同的权限,如果权限控制失效,则叫做失效的访问控制。
-
未对通过身份验证的用户实施恰当的访问控制。攻击者可以利用这些缺陷访问未经授权的功能或数据,例如:访问其他用户的账户、查看敏感文件、修改其他用户的数据、更改访问权限等。(2017,OWASP TOP 10)
-
访问控制强制实施策略,使用户无法在其预期权限之外进行操作。失败的访问控制通常会导致未经授权的信息泄露、修改或销毁所有数据、或在用户权限之外执行业务功能。(2021,OWASP TOP 10)
失效访问控制类别
水平越权
权限在相同权限级别的用户中横向移动。
垂直越权
获取更高级别的权限,如普通用户获取管理员权限
漏洞利用
- 水平权限提升利用: 攻击者可以通过修改请求参数,访问或修改其他用户的私人数据,进行数据盗窃或篡改。
- 垂直权限提升利用: 攻击者可以通过直接访问高级功能,执行只有管理员才能执行的操作,进行数据破坏或系统控制。
- 目录遍历利用: 攻击者可以通过目录遍历访问系统敏感文件,获取系统信息或执行进一步的攻击。
攻防案例
DVWA越权
相关漏洞
路径穿越
路径穿越(Path Traversal)是一种网络安全漏洞,通常发生在Web应用程序中,特别是那些处理文件上传或目录操作的服务器上。这种漏洞允许攻击者请求访问或修改服务器上的文件系统路径,超出了预期的安全限制。
当一个应用不正确地处理用户输入,比如文件上传路径或URL参数,而这些参数没有经过充分的验证和清理,攻击者可能构造恶意路径,使服务返回不应提供的文件。这可能导致敏感信息泄露,甚至执行任意代码,因为攻击者能够访问和控制服务器的文件结构。
为了防止路径穿越漏洞,开发人员应实施严格的输入验证,只允许上传到指定目录,限制对服务器文件系统的访问权限,并使用安全的文件路径构建方法,例如使用安全的函数库处理文件路径。
未授权访问
未授权访问漏洞 (Unauthorized Access)是指软件系统中的一种安全缺陷,允许未经授权的用户或攻击者获取、修改或删除他们不应有的数据或者执行他们不应有的操作。这种漏洞通常是由于开发者在设计和实现应用程序时,没有正确实施访问控制机制导致的,比较倾向数据库问题,简单的说就是没有对访问权限进行限制保护。
产生的原因包括:
- 权限管理不足:开发过程中没有对用户的权限进行严格的限制,导致低权限用户能够访问到高权限资源。
- 输入验证缺失:对用户的输入没有进行充分检查,恶意用户可能会利用这个漏洞提交恶意请求,绕过认证过程。
- 功能设计缺陷:某些功能设计上可能存在逻辑错误,使得访问控制失效或者被绕过。
未授权访问漏洞的危害很大,主要体现在以下几个方面:
- 数据泄露:敏感信息如用户密码、个人隐私等可能被窃取。
- 系统破坏:攻击者可以通过未经授权的访问控制,执行恶意代码,可能导致系统崩溃或被接管。
- 业务中断:攻击者可能会利用这个漏洞进行拒绝服务攻击(DDoS),影响正常业务运行。
- 法律责任:对于企业来说,数据泄露可能面临严重的法律和声誉风险。
Redis未授权访问
Redis(6379端口)
Redis是一个开源的、高性能的键值存储数据库,它被设计用于处理大量的数据并提供高速的数据读写能力。Redis支持多种数据结构,如字符串、哈希、列表、集合和有序集合,这使得它非常适合用作缓存、消息队列、会话存储以及简单的数据结构存储等场景。
它的特点包括:
- 快速响应:Redis基于内存操作,数据存取速度非常快,常用于实时数据更新和访问,常用于Web应用的缓存。
- 持久化:提供了多种数据持久化策略,如RDB(定期持久化)和AOF(append-only file,追加日志)。
- 丰富的数据结构:支持多种数据结构类型,满足不同应用场景的需求。
- 高可用:可以通过哨兵(Sentinel)和集群(Cluster)来实现高可用性和分布式扩展。
Redis 使用
Redis未设置密码,客户端工具可以直接连接。