WAF 绕过技术手册
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/waf-bypass-techniques-lr-lrqy 技能。
技能介绍
要解决什么问题
WAF 并不删除漏洞,它只是让 payload 到不了漏洞点。于是同一类注入,在有无 WAF 的站点上表现出两种完全不同的失败方式:payload 被 403 拦截,或者请求根本到不了后端。实际操作里最常见的浪费,是反复微调编码格式,却从不确认防护层在哪一层、过滤的是哪个解析器视角。这个技能把 WAF 绕过从「试错」改成「先分类、再选路」。
技能如何工作
核心是一条决策树:先做 WAF 识别,再进入通用绕过分类。
- 编码层:大小写、URL、Unicode、双重编码等常规变形
- 协议滥用:利用方法、头字段处理、路径规范化等协议层面的不一致
- HTTP/2:基于 h2 行为差异的绕过路径,基座模型常漏掉这类协议级方向
- 参数污染(HPP):本身既是绕过原语,也能制造后端解析分歧
识别完成后,按决策树选择对应分类,而不是继续在同一层编码上叠加变体。基座模型的典型短板是只给出基础编码,忽视协议级绕过与各 WAF 的行为差异。
专项参考与边界
针对具体产品的绕过需要加载 WAF_PRODUCT_MATRIX.md,覆盖 Cloudflare、AWS WAF、ModSecurity CRS、Akamai、Imperva、F5 BIG-IP、Sucuri 等。跨技能路由按需触发:绕过后投递 payload 用 sqli-sql-injection 或 xss-cross-site-scripting;用 request-smuggling 让请求整体绕开 WAF;inline script 被拦但 CSP 可绕过时用 csp-bypass-advanced。ghost-bits-cast-attack 仅适用于 Java 后端,当上述编码技巧全部失效时,利用 Java 16 位 char 到 8 位 byte 的收窄,每个危险 ASCII 字节可产生 255 种 Unicode 变体。
注意:所有绕过技术仅用于已获授权的测试范围。Ghost Bits 的副作用是会重新激活 Tomcat、Spring、Jetty、Jackson、Fastjson、BCEL 等组件中已被 WAF 补丁修复的 CVE。
使用场景
- 识别出目标站点使用某商业 WAF,需要在多种通用绕过分类中选定一条可行路径,而不是继续随机改动编码。
- WAF 拦截 SQL 注入 payload,需要从绕过技能路由到 sqli-sql-injection 技能完成后续投递。
- Java 后端站点所有编码技巧均失效,需要调用 ghost-bits-cast-attack 技能生成 Unicode 变体。
- 测试对象使用 Cloudflare 或 AWS WAF,需要加载 WAF_PRODUCT_MATRIX.md 获取针对该产品的专项绕过手法。
适合人员
- 渗透测试工程师,需要在授权测试中对某未知 WAF 快速定位可行的绕过方向。
- 应用安全研究员,需要梳理不同 WAF 厂商的防护差异并验证各类协议级绕过的有效性。
- 红队成员,需要在一次演练中对同一 Web 应用评估多种绕过路径的可行性并记录。
- 开发/运维工程师,需要理解 WAF 过滤逻辑以便向安全团队准确描述绕过现象。