WAF拦不住你?hack-skills中的Cloudflare/Akamai/ModSecurity厂商级绕过矩阵
【免费下载链接】hack-skillsHelping AI Agent become an awesome practical hacker!项目地址: https://gitcode.com/gh_mirrors/ha/hack-skills
在 WAF 绕过 实战中,新手最常遇到的困境就是:Payload 一发出去就 403。而 hack-skills 这个开源安全技能知识库,正好收录了一套完整的WAF 绕过矩阵——它把 Web 安全、API 安全、二进制利用等 14 个领域的 101 个深度技能整理成可检索的 Playbook,其中 waf-bypass-techniques 技能专门解决"注入请求被 Web 应用防火墙拦截"这个问题,并给出 Cloudflare、Akamai、ModSecurity 等厂商的定向绕过手法。
为什么 WAF 拦不住一切?
🛡️WAF(Web 应用防火墙)部署在应用前面,靠规则匹配来拦截攻击。听起来很稳,但它有一个天然短板:
WAF 看到的流量,和应用解析后的流量,往往不是同一个东西。
WAF 只做一次解码(或不解码),而后端应用可能解码两遍;WAF 按 form 表单解析请求体,而应用可能同时接受 JSON——规则对不上,绕过就出现了。hack-skills 的 SKILL.md 把这类"解码差"技巧系统归纳成了四类:
- 编码绕过:双重 URL 编码、Unicode 编码、HTML 实体、大小写混合(
SeLeCt)、十六进制 SQL 字面量 - 协议层绕过:分块传输(Chunked)把 Payload 拆散、HTTP/2 二进制帧、请求行用绝对 URI
- 路径规范化技巧:
/./path、双斜杠、Tomcat 的分号参数、Windows 末尾点号 - Content-Type 切换:把 form-urlencoded 换成 JSON 或 multipart,WAF 的解析器规则往往更弱
⚠️ 核心认知:WAF 是多层防御中的一层,不是修复本身。理解了这一点,你就知道为什么要"先识别、再定向绕过"。
第一步:如何识别你面对的是哪家 WAF
绕过的前提是知己知彼。WAF 识别方法 很简单,三步走:
| 方法 | 看什么 |
|---|---|
| 指纹工具 | wafw00f或 Nmap 脚本,从响应头自动识别厂商 |
| 响应头排查 | cf-ray(Cloudflare)、x-sucuri-id(Sucuri)、x-akamai-*(Akamai)、__cf_bmCookie |
| 行为指纹 | 先发一个正常请求记录基线,再发一个明显攻击(如<script>alert(1)),看是 403、自定义拦截页还是连接重置——拦截页文案往往直接暴露厂商 |
拿到厂商名后,就该切换到厂商专属的矩阵了。👇
厂商级 WAF 绕过矩阵:三家高频厂商拆解
完整的厂商矩阵在 WAF_PRODUCT_MATRIX.md 中,覆盖 Cloudflare、AWS WAF、ModSecurity CRS、Akamai、Imperva、F5 BIG-IP、Sucuri 共 7 家。这里挑实战中最高频的三家精讲。
Cloudflare WAF 绕过:全角字符与源站直连
🎯 Cloudflare 的两个特征弱点:
- Unicode 规范化差异:WAF 归一化的方式和后端不一样,全角字符
<script>可能穿过 WAF,却被浏览器渲染成真正的<script> - 免费规则集很弱:免费档的规则远少于付费档,且"托管规则"和"OWASP CRS 规则"是两套体系,绕过面不同
- 超长参数名:参数名超过 128 字符时可能被直接跳过检测
- 终极杀招:发现源站真实 IP(历史 DNS、邮件头、证书信息),直连源站——WAF 直接被绕过
ModSecurity + OWASP CRS 绕过:Paranoia Level 是最大漏洞
- PL1 规则极少:CRS 的 Paranoia Level 1(默认档)只含最小规则集,绝大多数部署都跑在 PL1-2,漏掉大量攻击模式
- MySQL 条件注释:
/*!50000UniOn*/SeLeCt这类按版本生效的注释,能绕过许多 CRS SQLi 规则 - 异常评分制:单条规则违规只是累加分数,不到阈值就不拦——可以把单次违规压在检测线以下
- 请求体限制差:文件上传字段的
SecRequestBodyNoFilesLimit默认只有 128KB,而总限制是 13MB,Payload 藏在上传字段里可能整段不检查
Akamai WAF 绕过:编码链 + 慢速投递
- 三重/混合编码:URL + Unicode + HTML 实体叠加,Akamai 的解码链跟不上
- Slow POST:拖慢发送速度,基于超时的保护可能只做了不完整检测
- 自适应引擎的"学习空窗":Akamai 会学习正常行为,全新的攻击模式在模型学不会之前,恰好有绕过窗口
- 注意惩罚箱:触发一次后你的 IP 会被限流几分钟,测试要轮换干净 IP
一张速查表:各家 WAF 的最大软肋
| WAF | 首选绕过向量 | 检查上限 | 关键弱点 |
|---|---|---|---|
| Cloudflare | Unicode 归一化 + 源站 IP | 128KB | 全角字符、免费档规则缺口 |
| ModSecurity CRS | PL1 规则缺口 + MySQL 注释 | 可配置 | 默认低警戒等级 |
| Akamai | 编码链 + 慢速 POST | 视配置 | 自适应引擎学习延迟 |
| Imperva | 参数污染 + JSON 深嵌套 | 未知 | 重复参数只检其一 |
| F5 BIG-IP | 序列化数据 + 学习模式 | 可配置 | 序列化检测薄弱 |
| Sucuri | 源站 IP + 冷门标签 | 未知 | 规则偏 WordPress 场景 |
完整的绕过决策树(编码 → 协议层 → 路径层 → Payload 变形 → IP 伪造 → 请求走私)在 SKILL.md 的第 4 节,建议按树逐层排查,不要一上来就堆 Payload。
配套技能:绕过 WAF 之后打什么?
hack-skills 的技能是可组合的,WAF 绕过只是第一关,之后自然衔接:
- 绕过之后送 Payload:sqli-sql-injection、xss-cross-site-scripting
- 把请求整体绕开 WAF:request-smuggling(请求走私可以完全跳过 WAF)、http-parameter-pollution(HPP 本身就是 WAF 绕过原语)
- 所有编码技巧都失效时(Java 后端):ghost-bits-cast-attack——利用 Java 16 位
char收窄成 8 位byte,每个危险字节产生 255 种 Unicode 变体
防御视角:怎么让 WAF 真正拦得住
📌 同样的技巧反过来看就是加固清单(来自 SKILL.md 第 6 节):
| 措施 | 说明 |
|---|---|
| WAF + 应用层输入校验 | WAF 是一层,不是修复本身 |
| 参数化查询 | 无论 WAF 如何,SQLi 直接失效 |
| CSP + 输出编码 | 无论 WAF 如何,XSS 直接失效 |
| 默认拒绝而非黑名单 | 用白名单放行合法输入 |
| 记录并告警每次拦截 | 绕过尝试在日志里全都看得见 |
如何获取这套 WAF 绕过矩阵?
克隆 hack-skills 仓库即可离线阅读全文:
git clone https://gitcode.com/gh_mirrors/ha/hack-skills拿到之后重点看这两个文件:
- 通用方法论与决策树:skills/waf-bypass-techniques/SKILL.md
- 七家厂商定向绕过矩阵:skills/waf-bypass-techniques/WAF_PRODUCT_MATRIX.md
💡 提示:WAF 绕过只在授权范围内的渗透测试、漏洞赏金、CTF 和防御加固中使用。识别出拦截你的 WAF 是哪一家,再从矩阵里取对应的手法——这就是厂商级矩阵的价值。
【免费下载链接】hack-skillsHelping AI Agent become an awesome practical hacker!项目地址: https://gitcode.com/gh_mirrors/ha/hack-skills
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考