OWASP Top 10漏洞详解
什么是OWASP Top 10?
OWASP(Open Web Application Security Project)是一个开源的、非营利的全球性安全组织,致力于改善软件的安全状况。其发布的OWASP Top 10每几年更新一次,总结了当前Web应用程序中最常见、最危险的十大安全漏洞。
当前最新的版本是 OWASP Top 10: 2021。我们将以此为基础进行详解。
以下是 OWASP Top 10 - 2021 的详细解析:
1. 失效的访问控制(Broken Access Control)
-
描述:访问控制强制实施策略,使用户不能在其预期权限之外行事。当应用程序无法正确实施这些控制时,攻击者就可以访问其他用户的数据、执行未授权的操作(如查看敏感文件、修改他人数据、提升权限等)。
-
典型攻击方式:
-
垂直越权:普通用户访问管理员功能(如通过修改URL参数
/admin/deleteUser.php?id=123
)。 -
水平越权:用户A访问用户B的数据(如修改URL中的用户ID
userId=B
为userId=A
)。 -
目录遍历(Path Traversal):通过操纵文件路径参数访问服务器上的敏感文件(如
../../etc/passwd
)。
-
-
防护措施:
-
除公共资源外,默认拒绝所有访问。
-
强制实施一次性的、不可篡改的访问控制机制(如在服务器端Session中校验权限,而非相信客户端传来的参数)。
-
禁用Web服务器目录列表。
-
记录访问控制失败的日志并告警。
-
2. 加密机制失效(Cryptographic Failures)
-
描述(原“敏感数据泄露”):这是一种广泛存在的故障,主要体现在未正确使用加密技术来保护敏感数据(如密码、信用卡号、健康记录、个人身份信息等)。数据在传输或存储过程中处于明文状态,或使用了弱加密算法、硬编码密钥等。
-
典型攻击方式:
-
在网络中窃听未使用HTTPS(TLS)的通信。
-
攻击数据库后直接获取明文的敏感信息。
-
对弱哈希(如MD5, SHA1)或未加盐的密码进行破解。
-
-
防护措施:
-
对传输中的数据和静态存储的数据使用强加密算法(如TLS 1.2/1.3, AES-256)。
-
禁止使用旧的和弱的算法(如MD5, SHA1, RC4, DES)。
-
使用随机盐和强哈希函数
-