mcpField
T
top-web-vulnerabilities

top-web-vulnerabilities

github.com/zebbern安全4.7k43 次安装1 天前更新
代码仓库

关于 top-web-vulnerabilities

按类别整理 Web 漏洞及其成因、影响和缓解措施的安全参考技能,可用于安全评估与修复规划。

主要功能

  1. 01分类漏洞参考
  2. 02成因与影响说明
  3. 03缓解措施指南
  4. 04评估与修复检查清单

适用场景

  1. 01检查 Web 应用漏洞
  2. 02规划已发现安全问题的修复
  3. 03编制安全评估检查清单

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/zebbern/claude-code-guide --skill top-web-vulnerabilities

安装后在 Claude Code 中输入/top-web-vulnerabilities确认已加载。

详细介绍

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 漏洞
#漏洞根本原因影响缓解措施
67HTTP 参数污染解析不一致注入、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
80IoT 管理问题身份验证薄弱、没有 TLS设备被控制强身份验证、TLS
81IoT 身份验证薄弱默认密码未经授权的访问唯一凭据、MFA
82IoT 漏洞设计缺陷、固件过旧被纳入僵尸网络更新、网络分段
83智能家居访问不安全的默认设置隐私侵犯MFA、网络分段
84IoT 隐私问题过度收集监视数据最小化
阶段 15:高级威胁和零日威胁
#漏洞根本原因影响缓解措施
89MIME 嗅探缺少标头XSS、欺骗X-Content-Type-Options
91CSP 绕过配置薄弱CSP 下仍发生 XSS严格 CSP、nonce
92验证不一致逻辑分散绕过控制集中验证
93竞态条件缺少同步权限提升正确加锁
94-95业务逻辑缺陷缺少验证金融欺诈服务端验证
96账户枚举响应不同定向攻击统一响应
98-99未修补漏洞补丁延迟零日漏洞利用补丁管理
100零日漏洞利用未知漏洞无法缓解的攻击深度防御

快速参考

漏洞类别摘要
类别漏洞编号主要控制措施
注入1-13参数化查询、输入验证、输出编码
身份验证14-23, 85-86MFA、会话管理、账户锁定
数据暴露24-27静态和传输加密、访问控制、DLP
错误配置28-36安全默认设置、加固、打补丁
XML37-39, 65禁用外部实体、限制展开
访问控制40-44RBAC、最小权限、授权检查
反序列化45-47避免使用不可信数据、完整性验证
API 安全48-51, 75OAuth、速率限制、输入验证
通信52-55TLS 1.2+、证书验证、HTTPS
客户端56-60CSP、X-Frame-Options、安全 DOM
DoS61-65速率限制、DDoS 防护、资源限制
SSRF66, 87-88URL 白名单、出口流量过滤
移动设备/IoT76-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:SSRF66, 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

评论

支持 Markdown