2021年OWASP Top 10漏洞关联性、相同点、区别总结
一、漏洞关联性总结表格
漏洞名称 | 关联性漏洞 | 关联案例 |
---|---|---|
失效的访问控制 | 1、加密机制失效 2、注入 3、安全配置错误 | 攻击者绕过访问控制获取加密密钥,利用注入漏洞窃取数据 |
加密机制失效 | 1、失效的访问控制 2、安全配置错误 | 默认配置未加密敏感数据,攻击者利用访问控制漏洞获取数据 |
注入 | 1、不安全的设计 2、安全配置错误 | 设计缺陷未验证用户输入,攻击者注入恶意代码 |
不安全的设计 | 1、注入 2、安全配置错误 | 设计未考虑安全性,导致注入漏洞和配置错误 |
安全配置错误 | 1、失效的访问控制 2、加密机制失效 3、脆弱和过时的组件 | 错误配置使系统使用过时组件,增加攻击面 |
脆弱和过时的组件 | 安全配置错误 | 使用过时组件,攻击者利用已知漏洞入侵 |
身份认证和授权缺陷 | 失效的访问控制 | 弱密码策略导致攻击者越权访问 |
软件和数据完整性失效 | 1、安全配置错误 2、脆弱和过时的组件 | 配置错误和过时组件导致系统完整性受损 |
安全日志与监控不足 | 所有漏洞 | 日志不足导致攻击行为未及时被发现 |
服务器端请求伪造 | 安全配置错误 | 错误配置允许攻击者发起恶意请求 |
二、漏洞相同点总结表格
漏洞名称 | 相同点 | 共同影响 |
---|---|---|
1、失效的访问控制 2、加密机制失效 3、注入 4、不安全的设计 5、安全配置错误 6、脆弱和过时的组件 | 利用设计或配置缺陷 | 数据泄露、系统受损 |
1、身份认证和授权缺陷 2、软件和数据完整性失效 | 信任管理不当 | 未授权访问、系统完整性受损 |
安全日志与监控不足 | 可见性不足 | 攻击行为难以检测 |
服务器端请求伪造 | 诱使服务器发起恶意请求 | 内网系统被攻击 |
三、漏洞区别总结表格
漏洞名称 | 独特原理 | 影响范围 | 实际案例 |
---|---|---|---|
失效的访问控制 | 权限绕过 | 数据泄露、越权操作 | 修改URL参数访问他人账户 |
加密机制失效 | 加密不当 | 数据泄露、系统受损 | 明文传输密码 |
注入 | 恶意代码注入 | 数据泄露、系统损害 | SQL注入窃取数据库信息 |
不安全的设计 | 设计缺陷 | 系统脆弱、易受攻击 | 未验证用户输入导致注入漏洞 |
安全配置错误 | 配置不当 | 数据泄露、服务中断 | 默认账户未更改被攻击 |
脆弱和过时的组件 | 组件漏洞 | 系统入侵、数据泄露 | 使用过时Struts被攻击 |
身份认证和授权缺陷 | 认证不足 | 未授权访问、数据泄露 | 弱密码策略被破解 |
软件和数据完整性失效 | 完整性假设错误 | 系统篡改、信任丧失 | 下载恶意依赖包 |
安全日志与监控不足 | 日志不足 | 攻击持续、难以发现 | 未记录登录失败日志 |
服务器端请求伪造 | 诱使恶意请求 | 内网系统被攻击 | 利用URL参数访问内网系统 |
四、详细讲解每个概念(附实际案例)
- 失效的访问控制
- 原理:系统未正确验证用户权限,允许攻击者越权访问资源。
- 案例1:攻击者修改URL参数(如
/user?id=123
→id=456
)访问他人账户数据。 - 案例2:未授权用户执行管理员操作,如删除数据、修改权限。
- 案例3:API接口缺少身份验证,允许任意用户操作。
- 加密机制失效
- 原理:敏感数据因加密算法弱、密钥管理不当或传输未加密而泄露。
- 案例1:网站使用HTTP明文传输密码,攻击者通过监听网络窃取用户凭证。
- 案例2:使用过时算法(如MD5)加密密码,攻击者通过彩虹表破解。
- 案例3:未正确验证服务器证书,导致中间人攻击。
- 注入
- 原理:攻击者向应用程序中输入恶意代码,使其执行未经授权的操作。
- 案例1:SQL注入(
' OR 1=1--
绕过登录),攻击者获取数据库敏感信息。 - 案例2:OS命令注入,攻击者执行系统命令获取敏感信息。
- 案例3:跨站脚本攻击(XSS),攻击者窃取用户Cookie。
- 不安全的设计
- 原理:架构或业务流程设计缺陷,缺乏安全设计模式。
- 案例1:注册流程未防批量创建账号,攻击者利用脚本注册大量恶意账号。
- 案例2:支付逻辑未校验订单归属,攻击者篡改订单信息。
- 案例3:未使用安全设计模式,导致系统脆弱。
- 安全配置错误
- 原理:默认配置未更新、错误暴露信息或启用冗余服务。
- 案例1:服务器开启调试模式,攻击者利用泄露的堆栈信息发起进一步攻击。
- 案例2:目录列表未禁用,攻击者获取敏感文件列表。
- 案例3:默认账户未更改,攻击者利用默认凭证入侵。
- 脆弱和过时的组件
- 原理:依赖库/框架存在已知漏洞。
- 案例1:未及时更新Apache Struts,攻击者利用已知漏洞入侵服务器。
- 案例2:使用旧版WordPress插件,攻击者利用漏洞上传恶意文件。
- 案例3:未更新数据库管理系统(DBMS),攻击者利用已知漏洞窃取数据。
- 身份认证和授权缺陷
- 原理:弱密码策略、会话令牌固定或暴力破解防护不足。
- 案例1:允许密码
123456
,攻击者通过暴力破解获取用户账户。 - 案例2:会话令牌固定,攻击者劫持用户会话。
- 案例3:未实施多因素身份验证,攻击者利用泄露的凭证入侵。
- 软件和数据完整性失效
- 原理:信任不可信来源的数据或代码,导致恶意篡改。
- 案例1:从非官方源下载依赖包,攻击者植入恶意代码。
- 案例2:反序列化未验证的数据,攻击者执行恶意代码。
- 案例3:未验证软件更新包,攻击者替换更新包。
- 安全日志与监控不足
- 原理:未记录关键日志或未能及时告警,导致攻击持续。
- 案例1:未监控多次登录失败,攻击者尝试暴力破解未被发现。
- 案例2:未记录数据库查询日志,攻击者窃取数据未被发现。
- 案例3:未告警异常活动,攻击者持续攻击未被发现。
- 服务器端请求伪造
- 原理:攻击者诱使服务器向内部网络发起恶意请求。
- 案例1:攻击者利用URL参数(如
http://internal-api/admin
)访问内网系统。 - 案例2:攻击者利用服务器发起请求到内部数据库,窃取敏感数据。
- 案例3:攻击者利用服务器发起请求到内部文件服务器,获取敏感文件。