WAF 绕过技术清单
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/waf-bypass-zrgd
技能介绍
要解决什么问题
在 Web 应用渗透测试中,写好的 payload 经常被 WAF 直接拦截:SQL 注入被规则拦下、XSS 触发了挑战页面、扫描器被 TLS 指纹识别为自动化工具。结果是漏洞是否真实存在无法验证,测试卡在 WAF 这一层。这个技能要解决的就是「如何系统地绕过 WAF 完成测试」这个具体问题。
技能如何工作
核心是一份按序执行的 checklist,分为三个阶段:
1. 指纹识别
先确认目标用的是什么 WAF,再选对应的绕过手段:
- 检查响应头、cookies(如 Cloudflare 的
cf_clearance、AWS 的AWSALB)和特殊路由(/cdn-cgi/) - 分析控制台注入的 JS 对象(如
_cf_chl_opt) - 对比 JA3/JA4 TLS 指纹,判断是否因指纹异常被拦截
- 覆盖 Cloudflare、Akamai、AWS WAF、Imperva、ModSecurity、NAXSI 等常见 WAF
2. 通用规避与协议层绕过
- 使用住宅 IP 轮换替代容易被识别的数据中心 IP
- 用
undetected_chromedriver、playwright-extrastealth 插件伪装 headless 浏览器 - 修改 TLS 握手参数对齐真实浏览器指纹(如
noble-tls、ja4py) - HTTP 层面的手法:方法名大小写混淆、
X-Forwarded-For等伪造头、Host header 欺骗、HTTP Parameter Pollution、利用 CRLF 等 RFC 解析不一致
3. Payload 变形
针对 SQLi 和 XSS 给出针对性变形技巧:
- SQLi:大小写变化(
SeLeCt)、注释插入(UN/**/ION)、URL/Hex/Unicode/双重编码、CONCAT()拼接、SQLMap tamper 脚本组合 - XSS:context-aware payload、mXSS 利用解析器差异、polyglot、CSP 绕过(JSONP 滥用、DOM clobbering)
另外还包括直连源站的思路:通过 Shodan 或 CloudFlair 找到源站 IP 绕过 WAF 层,以及针对 Cloudflare Turnstile 的求解工具。
适用边界
- 仅适用于授权范围内的安全测试,所有绕过手段都应在合法授权下使用
- 没有任何单一方法对所有 WAF 有效,需要按目标指纹逐一试验并记录结果
- 清单中部分第三方工具和 PoC 更新不及时,实际效果需要自行验证
- WAF 规则和反自动化手段在持续演进,这份清单是起点而非终点
使用场景
- 渗透测试中 SQL 注入 payload 被 WAF 拦截,需要逐一尝试编码、注释插入、大小写变形等手法确认注入点是否真实存在
- 扫描器触发 Cloudflare 机器人挑战或 TLS 指纹拦截,需要伪装浏览器指纹与行为后继续完成站点探测
- 存储型 XSS 的 payload 被 WAF 按黑名单过滤,需要根据插入上下文构造变形 payload 或利用 mXSS 验证漏洞
- 目标全站启用 WAF 且疑似存在源站暴露,需要通过 Shodan、CloudFlair 定位源站 IP 绕过防护层直接测试
适合人员
- Web 渗透测试工程师:在授权测试中 payload 被 WAF 拦截,需要一份按指纹识别到 payload 变形的系统化 checklist
- 红队研究员:针对特定 WAF 厂商验证绕过手法,输出技术研究或防御加固建议
- 防御工程师:了解攻击者如何变形 payload 与伪造 TLS 指纹,据此评估现有 WAF 规则的盲区
- 自动化脚本开发者:爬虫或测试脚本被反自动化机制识别拦截,需要反检测技巧恢复运行