关于 Top 100 Web Vulnerabilities Reference
Top 100 Web Vulnerabilities Reference 是供安全从业者评估 Web 应用的结构化参考资料,按类别整理漏洞定义、成因、影响和缓解方法,支持测试与修复。
主要功能
- 01按类别整理漏洞参考内容
- 02说明漏洞成因与影响
- 03提供所列问题的缓解建议
- 04按安全领域组织评估流程
适用场景
- 01编制 Web 应用安全检查清单
- 02检查注入和身份验证风险
- 03评估 API 与访问控制弱点
- 04规划已发现漏洞的修复工作
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ davila7/ claude-code-templates --skill top-100-web-vulnerabilities-reference安装后在 Claude Code 中输入/top-100-web-vulnerabilities-reference确认已加载。
详细介绍
Top 100 Web Vulnerabilities Reference
目的
为按类别组织的 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 炸弹(Billion Laughs)(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)
- 定义:加密设置配置不当
- 根本原因:密码套件强度较弱、缺少前向保密
- 影响:流量解密、中间人攻击
- 缓解措施:现代密码套件、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