Top 100 Web 漏洞参考
目的
提供按类别组织的 100 个最关键 Web 应用漏洞的全面结构化参考。支持系统化的漏洞识别、影响评估和修复指导,覆盖 Web 安全威胁的完整范围。内容按 15 个主要漏洞类别组织,符合行业标准和真实攻击模式。
前提条件
- 了解 Web 应用架构基础(客户端-服务器模型、HTTP 协议)
- 熟悉常见 Web 技术(HTML、JavaScript、SQL、XML、API)
- 理解认证和授权概念
- 可访问 Web 应用安全测试工具(Burp Suite、OWASP ZAP)
- 建议了解安全编码原则
交付物
- 包含定义、根因、影响和缓解措施的完整漏洞目录
- 按类别分组的漏洞,便于系统化评估
- 安全测试和修复的快速参考
- 漏洞评估检查表和安全策略的基础
核心工作流
阶段 1:注入漏洞评估
评估针对数据处理组件的注入攻击向量:
SQL 注入 (1)
- 定义:恶意 SQL 代码插入输入字段以操纵数据库查询
- 根因:缺乏输入验证、参数化查询使用不当
- 影响:未授权数据访问、数据操纵、数据库沦陷
- 缓解:使用参数化查询/预编译语句、输入验证、最小权限数据库账户
跨站脚本 - XSS (2)
- 定义:向其他用户查看的网页注入恶意脚本
- 根因:输出编码不足、缺乏输入净化
- 影响:会话劫持、凭证窃取、网站篡改
- 缓解:输出编码、内容安全策略(CSP)、输入净化
命令注入 (5, 11)
- 定义:通过漏洞应用执行任意系统命令
- 根因:未净化的用户输入传递给系统 shell
- 影响:完全系统沦陷、数据窃取、横向移动
- 缓解:避免 shell 执行、白名单有效命令、严格输入验证
XML 注入 (6)、LDAP 注入 (7)、XPath 注入 (8)
- 定义:通过恶意输入操纵 XML/LDAP/XPath 查询
- 根因:查询构建中输入处理不当
- 影响:数据泄露、认证绕过、信息泄露
- 缓解:输入验证、参数化查询、转义特殊字符
服务端模板注入 - SSTI (13)
- 定义:向模板引擎注入恶意代码
- 根因:用户输入直接嵌入模板表达式
- 影响:远程代码执行、服务器沦陷
- 缓解:沙箱化模板引擎、避免用户输入进入模板、严格输入验证
阶段 2:认证与会话安全
评估认证机制弱点:
会话固定 (14)
- 定义:攻击者在认证前设置受害者会话 ID
- 根因:登录后未重新生成会话 ID
- 影响:会话劫持、未授权账户访问
- 缓解:认证时重新生成会话 ID、使用安全会话管理
暴力破解攻击 (15)
- 定义:使用自动化工具系统性猜测密码
- 根因:缺乏账户锁定、速率限制或 CAPTCHA
- 影响:未授权访问、凭证泄露
- 缓解:账户锁定策略、速率限制、MFA、CAPTCHA
会话劫持 (16)
- 定义:攻击者窃取或预测有效会话令牌
- 根因:弱会话令牌生成、不安全传输
- 影响:账户接管、未授权访问
- 缓解:安全随机令牌生成、HTTPS、HttpOnly/Secure cookie 标志
凭证填充与复用 (22)
- 定义:使用泄露凭证访问跨服务账户
- 根因:用户复用密码、无泄露检测
- 影响:大规模账户沦陷、数据泄露
- 缓解:MFA、泄露密码检查、唯一凭证要求
不安全的"记住我"功能 (85)
- 定义:弱持久认证令牌实现
- 根因:可预测令牌、过期控制不足
- 影响:未授权持久访问、会话泄露
- 缓解:强令牌生成、适当过期、安全存储
CAPTCHA 绕过 (86)
- 定义:绕过机器人检测机制
- 根因:弱 CAPTCHA 算法、验证不当
- 影响:自动化攻击、凭证填充、垃圾信息
- 缓解:reCAPTCHA v3、分层机器人检测、速率限制
阶段 3:敏感数据泄露
识别数据保护缺陷:
IDOR - 不安全的直接对象引用 (23, 42)
- 定义:通过用户提供的引用直接访问内部对象
- 根因:对象访问缺少授权检查
- 影响:未授权数据访问、隐私泄露
- 缓解:访问控制验证、间接引用映射、授权检查
数据泄露 (24)
- 定义:敏感信息无意泄露
- 根因:数据保护不足、访问控制薄弱
- 影响:隐私泄露、监管处罚、声誉损害
- 缓解:DLP 方案、加密、访问控制、安全培训
未加密数据存储 (25)
- 定义:存储敏感数据时未加密
- 根因:未实现静态加密
- 影响:存储被攻破时数据泄露
- 缓解:全盘加密、数据库加密、安全密钥管理
信息泄露 (33)
- 定义:通过错误消息或响应暴露系统细节
- 根因:详细错误处理、生产环境中的调试信息
- 影响:为进一步攻击提供侦察信息、凭证泄露
- 缓解:通用错误消息、禁用调试模式、安全日志记录
阶段 4:安全配置错误
评估配置弱点:
缺少安全头 (26)
- 定义:缺少保护性 HTTP 头(CSP、X-Frame-Options、HSTS)
- 根因:服务器配置不足
- 影响:XSS 攻击、点击劫持、协议降级
- 缓解:实施 CSP、X-Content-Type-Options、X-Frame-Options、HSTS
默认密码 (28)
- 定义:系统/应用使用未更改的默认凭证
- 根因:未更改厂商默认值
- 影响:未授权访问、系统沦陷
- 缓解:强制更改密码、强密码策略
目录列表 (29)
- 定义:Web 服务器暴露目录内容
- 根因:服务器配置不当
- 影响:信息泄露、敏感文件暴露
- 缓解:禁用目录索引、使用默认索引文件
未保护的 API 端点 (30)
- 定义:API 缺少认证或授权
- 根因:API 路由缺少安全控制
- 影响:未授权数据访问、API 滥用
- 缓解:OAuth/API 密钥、访问控制、速率限制
开放端口和服务 (31)
- 定义:暴露不必要的网络服务
- 根因:未最小化攻击面
- 影响:利用漏洞服务
- 缓解:端口扫描审计、防火墙规则、服务最小化
配置错误的 CORS (35)
- 定义:过于宽松的跨域资源共享策略
- 根因:通配符源、CORS 配置不当
- 影响:跨站请求攻击、数据窃取
- 缓解:白名单可信源、验证 CORS 头
未打补丁的软件 (34)
- 定义:运行过时漏洞软件的系统
- 根因:忽视补丁管理
- 影响:利用已知漏洞
- 缓解:补丁管理计划、漏洞扫描、自动化更新
阶段 5:XML 相关漏洞
评估 XML 处理安全性:
XXE - XML 外部实体注入 (37)
- 定义:利用 XML 解析器访问文件或内部系统
- 根因:启用了外部实体处理
- 影响:文件泄露、SSRF、拒绝服务
- 缓解:禁用外部实体、使用安全 XML 解析器
XEE - XML 实体扩展 (38)
- 定义:过度实体扩展导致资源耗尽
- 根因:允许无限实体扩展
- 影响:拒绝服务、解析器崩溃
- 缓解:限制实体扩展、配置解析器限制
XML 炸弹(十亿笑声攻击)(39)
- 定义:精心构造的 XML 通过嵌套实体消耗资源
- 根因:递归实体定义
- 影响:内存耗尽、拒绝服务
- 缓解:实体扩展限制、输入大小限制
XML 拒绝服务 (65)
- 定义:特制 XML 导致过度处理
- 根因:复杂文档结构无限制
- 影响:CPU/内存耗尽、服务不可用
- 缓解:模式验证、大小限制、处理超时
阶段 6:访问控制缺陷
评估授权执行:
授权不足 (40)
- 定义:未能正确执行访问控制
- 根因:弱授权策略、缺少检查
- 影响:未授权访问敏感资源
- 缓解:RBAC、集中式 IAM、定期访问审查
权限提升 (41)
- 定义:获得超出预期权限的提升访问
- 根因:权限配置错误、系统漏洞
- 影响:完全系统沦陷、数据操纵
- 缓解:最小权限、定期补丁、权限监控
强制浏览 (43)
- 定义:直接操纵 URL 访问受限资源
- 根因:访问控制薄弱、URL 可预测
- 影响:未授权文件/目录访问
- 缓解:服务端访问控制、不可预测的资源路径
缺少功能级访问控制 (44)
- 定义:未保护的管理或特权功能
- 根因:仅在 UI 层进行授权
- 影响:未授权功能执行
- 缓解:所有功能的服务端授权、RBAC
阶段 7:不安全的反序列化
评估对象序列化安全性:
通过反序列化的远程代码执行 (45)
- 定义:通过恶意序列化对象执行任意代码
- 根因:反序列化未验证的不可信数据
- 影响:完全系统沦陷、代码执行
- 缓解:避免反序列化不可信数据、完整性检查、类型验证
数据篡改 (46)
- 定义:未授权修改序列化数据
- 根因:缺少完整性验证
- 影响:数据损坏、权限操纵
- 缓解:数字签名、HMAC 验证、加密
对象注入 (47)
- 定义:反序列化期间恶意对象实例化
- 根因:不安全的反序列化实践
- 影响:代码执行、未授权访问
- 缓解:类型限制、类白名单、安全库
阶段 8:API 安全评估
评估 API 特定漏洞:
不安全的 API 端点 (48)
- 定义:缺少适当安全控制的 API
- 根因:API 设计不良、缺少认证
- 影响:数据泄露、未授权访问
- 缓解:OAuth/JWT、HTTPS、输入验证、速率限制
API 密钥泄露 (49)
- 定义:泄露或暴露的 API 凭证
- 根因:硬编码密钥、不安全存储
- 影响:未授权 API 访问、滥用
- 缓解:安全密钥存储、轮换、环境变量
缺少速率限制 (50)
- 定义:无 API 请求频率控制
- 根因:缺少节流机制
- 影响:DoS、API 滥用、资源耗尽
- 缓解:按用户/IP 的速率限制、节流、DDoS 防护
输入验证不足 (51)
- 定义:API 接受未验证的用户输入
- 根因:缺少服务端验证
- 影响:注入攻击、数据损坏
- 缓解:严格验证、参数化查询、WAF
API 滥用 (75)
- 定义:利用 API 功能进行恶意目的
- 根因:过度信任客户端输入
- 影响:数据窃取、账户接管、服务滥用
- 缓解:强认证、行为分析、异常检测
阶段 9:通信安全
评估传输层保护:
中间人攻击 (52)
- 定义:拦截双方之间的通信
- 根因:未加密通道、网络被攻破
- 影响:数据窃取、会话劫持、冒充
- 缓解:TLS/SSL、证书固定、双向认证
传输层安全不足 (53)
- 定义:传输中数据的加密弱或过时
- 根因:过时协议(SSLv2/3)、弱密码套件
- 影响:流量拦截、凭证窃取
- 缓解:TLS 1.2+、强密码套件、HSTS
不安全的 SSL/TLS 配置 (54)
- 定义:加密配置设置不当
- 根因:弱密码套件、缺少前向保密
- 影响:流量解密、MITM 攻击
- 缓解:现代密码套件、PFS、证书验证
不安全的通信协议 (55)
- 定义:使用未加密协议(HTTP、Telnet、FTP)
- 根因:遗留系统、安全意识不足
- 影响:流量嗅探、凭证泄露
- 缓解:HTTPS、SSH、SFTP、VPN 隧道
阶段 10:客户端漏洞
评估浏览器端安全性:
基于 DOM 的 XSS (56)
- 定义:通过客户端 JavaScript 操纵实现 XSS
- 根因:使用用户输入的不安全 DOM 操纵
- 影响:会话窃取、凭证收集
- 缓解:安全 DOM API、CSP、输入净化
不安全的跨域通信 (57)
- 定义:跨域请求处理不当
- 根因:宽松的 CORS/SOP 策略
- 影响:数据泄露、CSRF 攻击
- 缓解:严格 CORS、CSRF 令牌、源验证
浏览器缓存投毒 (58)
- 定义:操纵缓存内容
- 根因:缓存验证薄弱
- 影响:恶意内容分发
- 缓解:Cache-Control 头、HTTPS、完整性检查
点击劫持 (59, 71)
- 定义:UI 欺骗攻击诱使用户点击隐藏元素
- 根因:缺少框架保护
- 影响:非预期操作、凭证窃取
- 缓解:X-Frame-Options、CSP frame-ancestors、框架破解
HTML5 安全问题 (60)
- 定义:HTML5 API 中的漏洞(WebSockets、Storage、Geolocation)
- 根因:API 使用不当、验证不足
- 影响:数据泄露、XSS、隐私违规
- 缓解:安全 API 使用、输入验证、沙箱化
阶段 11:拒绝服务评估
评估可用性威胁:
DDoS - 分布式拒绝服务 (61)
- 定义:多源流量压垮系统
- 根因:僵尸网络、放大攻击
- 影响:服务不可用、收入损失
- 缓解:DDoS 防护服务、速率限制、CDN
应用层 DoS (62)
- 定义:针对应用逻辑耗尽资源
- 根因:低效代码、资源密集操作
- 影响:应用不可用、性能下降
- 缓解:速率限制、缓存、WAF、代码优化
资源耗尽 (63)
- 定义:耗尽 CPU、内存、磁盘或网络资源
- 根因:资源管理低效
- 影响:系统崩溃、服务降级
- 缓解:资源配额、监控、负载均衡
Slowloris 攻击 (64)
- 定义:通过部分 HTTP 请求保持连接打开
- 根因:无连接超时
- 影响:Web 服务器资源耗尽
- 缓解:连接超时、请求限制、反向代理
阶段 12:服务端请求伪造
评估 SSRF 漏洞:
SSRF - 服务端请求伪造 (66)
- 定义:操纵服务器向内部资源发起请求
- 根因:未验证的用户控制 URL
- 影响:内部网络访问、数据窃取、云元数据访问
- 缓解:URL 白名单、网络分段、出站过滤
盲 SSRF (87)
- 定义:无直接响应可见性的 SSRF
- 根因:与 SSRF 类似,更难检测
- 影响:数据窃取、内部侦察
- 缓解:允许列表、WAF、网络限制
基于时间的盲 SSRF (88)
- 定义:通过响应时间推断 SSRF 成功
- 根因:处理延迟指示请求结果
- 影响:长期利用、检测规避
- 缓解:请求超时、异常检测、时间监控
阶段 13:其他 Web 漏洞
| # | 漏洞 | 根因 | 影响 | 缓解 |
|---|---|---|---|---|
| 67 | HTTP 参数污染 | 解析不一致 | 注入、ACL 绕过 | 严格解析、验证 |
| 68 | 不安全的重定向 | 未验证目标 | 钓鱼、恶意软件 | 白名单目标 |
| 69 | 文件包含(LFI/RFI) | 未验证路径 | 代码执行、泄露 | 白名单文件、禁用 RFI |
| 70 | 安全头绕过 | 头配置错误 | XSS、点击劫持 | 正确配置头、审计 |
| 72 | 会话超时不足 | 超时过长 | 会话劫持 | 空闲终止、超时 |
| 73 | 日志记录不足 | 基础设施缺失 | 检测空白 | SIEM、告警 |
| 74 | 业务逻辑缺陷 | 设计不安全 | 欺诈、未授权操作 | 威胁建模、测试 |
阶段 14:移动与 IoT 安全
| # | 漏洞 | 根因 | 影响 | 缓解 |
|---|---|---|---|---|
| 76 | 不安全的移动存储 | 明文、弱加密 | 数据窃取 | Keychain/Keystore、加密 |
| 77 | 不安全的移动传输 | HTTP、证书失败 | 流量拦截 | TLS、证书固定 |
| 78 | 不安全的移动 API | 缺少认证/验证 | 数据暴露 | OAuth/JWT、验证 |
| 79 | 应用逆向工程 | 硬编码凭证 | 凭证窃取 | 混淆、RASP |
| 80 | IoT 管理问题 | 弱认证、无 TLS | 设备接管 | 强认证、TLS |
| 81 | 弱 IoT 认证 | 默认密码 | 未授权访问 | 唯一凭证、MFA |
| 82 | IoT 漏洞 | 设计缺陷、旧固件 | 僵尸网络招募 | 更新、分段 |
| 83 | 智能家居访问 | 不安全默认值 | 隐私侵犯 | MFA、分段 |
| 84 | IoT 隐私问题 | 过度收集 | 监控 | 数据最小化 |
阶段 15:高级与零日威胁
| # | 漏洞 | 根因 | 影响 | 缓解 |
|---|---|---|---|---|
| 89 | MIME 嗅探 | 缺少头 | XSS、欺骗 | X-Content-Type-Options |
| 91 | CSP 绕过 | 配置薄弱 | 尽管有 CSP 仍有 XSS | 严格 CSP、nonce |
| 92 | 验证不一致 | 逻辑分散 | 控制绕过 | 集中验证 |
| 93 | 竞态条件 | 缺少同步 | 权限提升 | 适当锁定 |
| 94-95 | 业务逻辑缺陷 | 缺少验证 | 金融欺诈 | 服务端验证 |
| 96 | 账户枚举 | 响应不同 | 定向攻击 | 统一响应 |
| 98-99 | 未打补丁的漏洞 | 补丁延迟 | 零日利用 | 补丁管理 |
| 100 | 零日利用 | 未知漏洞 | 无法缓解的攻击 | 纵深防御 |
快速参考
漏洞类别汇总
| 类别 | 漏洞编号 | 关键控制 |
|---|---|---|
| 注入 | 1-13 | 参数化查询、输入验证、输出编码 |
| 认证 | 14-23, 85-86 | MFA、会话管理、账户锁定 |
| 数据泄露 | 24-27 | 静态/传输加密、访问控制、DLP |
| 配置错误 | 28-36 | 安全默认值、加固、补丁 |
| XML | 37-39, 65 | 禁用外部实体、限制扩展 |
| 访问控制 | 40-44 | RBAC、最小权限、授权检查 |
| 反序列化 | 45-47 | 避免不可信数据、完整性验证 |
| API 安全 | 48-51, 75 | OAuth、速率限制、输入验证 |
| 通信 | 52-55 | TLS 1.2+、证书验证、HTTPS |
| 客户端 | 56-60 | CSP、X-Frame-Options、安全 DOM |
| DoS | 61-65 | 速率限制、DDoS 防护、资源限制 |
| SSRF | 66, 87-88 | URL 白名单、出站过滤 |
| 移动/IoT | 76-84 | 加密、认证、安全存储 |
| 业务逻辑 | 74, 92-97 | 威胁建模、逻辑测试 |
| 零日 | 98-100 | 纵深防御、威胁情报 |
关键安全头
Content-Security-Policy: default-src 'self'; script-src 'self'
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-XSS-Protection: 1; mode=block
Strict-Transport-Security: max-age=31536000; includeSubDomains
Referrer-Policy: strict-origin-when-cross-origin
Permissions-Policy: geolocation=(), microphone=()
OWASP Top 10 映射
| OWASP 2021 | 相关漏洞 |
|---|---|
| A01: 访问控制缺陷 | 40-44, 23, 74 |
| A02: 加密失败 | 24-25, 53-55 |
| A03: 注入 | 1-13, 37-39 |
| A04: 不安全设计 | 74, 92-97 |
| A05: 安全配置错误 | 26-36 |
| A06: 漏洞组件 | 34, 98-100 |
| A07: 认证失败 | 14-23, 85-86 |
| A08: 数据完整性 | 45-47 |
| A09: 日志失败 | 73 |
| A10: SSRF | 66, 87-88 |
约束与限制
- 漏洞定义代表常见模式;具体实现各异
- 缓解措施必须适配技术栈和架构
- 新漏洞持续出现;参考应定期更新
- 部分漏洞跨类别重叠(如 IDOR 出现在多个上下文中)
- 缓解措施的有效性取决于正确实施
- 自动扫描器无法检测所有漏洞类型(尤其是业务逻辑)
故障排查
常见评估挑战
| 挑战 | 解决方案 |
|---|---|
| 扫描误报 | 手动验证、上下文分析 |
| 业务逻辑缺陷遗漏 | 手动测试、威胁建模、滥用案例分析 |
| 加密流量分析 | 代理配置、证书安装 |
| WAF 阻止测试 | 速率调整、IP 轮换、载荷编码 |
| 会话处理问题 | Cookie 管理、认证状态跟踪 |
| API 发现 | Swagger/OpenAPI 枚举、流量分析 |
漏洞验证技术
| 漏洞类型 | 验证方法 |
|---|---|
| 注入 | 使用编码变体进行载荷测试 |
| XSS | 告警框、Cookie 访问、DOM 检查 |
| CSRF | 跨域表单提交测试 |
| SSRF | 带外 DNS/HTTP 回调 |
| XXE | 使用受控服务器的外部实体 |
| 访问控制 | 水平/垂直权限测试 |
| 认证 | 凭证轮换、会话分析 |
参考资料
- OWASP Top 10 Web 应用安全风险
- CWE/SANS Top 25 最危险软件错误
- OWASP 测试指南
- OWASP 应用安全验证标准(ASVS)
- NIST 网络安全框架
- 来源:Kumar MS - Top 100 Web Vulnerabilities
适用场景
本技能适用于执行概述中描述的工作流或操作。