matrixleons/evilwaf
GitHub: matrixleons/evilwaf
一款传输层 WAF 绕过代理与多层漏洞扫描器,通过指纹轮换和源 IP 探测实现防火墙绕过。
Stars: 723 | Forks: 83
**EvilWAF** 是一款先进的透明 MITM Firewall 绕过代理和深度 WAF 漏洞扫描器,专为授权安全测试而设计。它运行在传输层——不会触碰来自你工具的 payload、cookie 或 header。适用于任何支持 `--proxy` 的工具。
## 功能特性
### 代理与绕过
- **透明 MITM 代理** — 适用于任何支持 `--proxy` 的工具。工具端零配置。
- **TCP 指纹轮换** — 每次请求轮换 TCP 栈选项,以规避行为检测。
- **TLS 指纹轮换** — 轮换 TLS 指纹(JA3/JA4 风格)并与 TCP 配置文件配对。
- **HTTP/2 指纹轮换** — 每次请求轮换 H2 SETTINGS 和 HEADERS 帧配置文件,循环使用 Chrome、Firefox、Safari 和 Edge 的配置文件,以防止 WAF 行为指纹识别。
- **源端口操纵** — 每次请求轮换源端口,破坏依赖源端口一致性的 WAF 会话跟踪和速率限制计数器。
- **Cloudflare Header 注入** — 注入 Cloudflare 特定的内部 header(`CF-Connecting-IP`、`CF-Ray`、`True-Client-IP`)并使用精心构造的值,以测试 WAF header 信任并尝试 IP 白名单绕过。
- **Tor IP 轮换** — 通过 Tor 路由流量,并自动轮换每次请求的出口 IP。
- **代理池 IP 轮换** — 通过外部代理池轮换每次请求的 IP。
- **源 IP 探测器** — 使用 10 个并行扫描器发现 WAF 后面的真实服务器 IP:
- DNS 历史、SSL 证书分析、子域名枚举
- DNS 错误配置、云端泄露检测、GitHub 泄露搜索
- HTTP header 泄露、favicon 哈希、ASN 范围扫描、Censys
- **自动 WAF 检测** — 在开始绕过之前自动检测 WAF 供应商。
- **直接源站绕过** — 一旦找到真实 IP,将所有流量直接路由到服务器,完全绕过 WAF。
- **全 HTTPS MITM** — 通过为每个主机动态生成证书来拦截和检查 HTTPS 流量。
- **HTTP/2 & HTTP/1.1 支持** — 自动协商 ALPN 并处理这两种协议。
- **响应顾问** — 在遇到 WAF 拦截(403、429、503)时使用不同技术自动重试。
### WAF 漏洞扫描器
- **深度多层 WAF 扫描器** — 将防火墙本身视为目标。跨 10 个独立扫描层同时分析所有 WAF 防御层:
- `Layer 1 Network` — 虚拟主机绕过、敏感路径探测、Host header 操纵
- `Layer 2 RuleEngine` — 基于 payload 的规则缺口检测:SQLi、XSS、RCE、LFI
- `Layer 3 RateLimit` — 突发和持续速率限制执行测试
- `Layer 4 Evasion` — 编码和规范化绕过,每个 payload 有 10 种编码变体
- `Layer 5 Behavioural` — 时序分析:tarpit、JS 挑战延迟、退避检测
- `Layer 6 Header` — HTTP header 注入和 IP 欺骗绕过
- `Layer 7 TLS` — TLS 版本探测、SNI 绕过、证书指纹识别
- `Layer 8 MethodVerb` — HTTP 方法绕过,包括 WebDAV 方法
- `Layer 9 Session` — Cookie 操纵、认证绕过、会话固定探测
- `Layer 10 Misconfig` — WAF 错误配置和信息泄露检测
- **持久会话** — 每次扫描都会与先前扫描的历史 JSON 数据合并。置信度随时间增长——扫描时间越长,结果越准确。
- **统计置信引擎** — 使用均值、标准差和稳定性分析计算各层置信度分数。经过 15 次验证通过且置信度为 86% 的发现是真正的漏洞,而非噪音。
- **误报验证** — 每个发现都会在干净的基线上重放验证后才上报。无法复现的发现会被自动排除。
- **C 扩展** (`_fast_scanner.c`) — 高性能 Python C 扩展,用于分类、熵分析、时序异常检测和统计热路径。
### 界面
- **TUI 仪表盘** — 实时终端 UI,显示实时流量、活动技术、Tor IP、源端口、代理池以及各层扫描发现。
- **无头模式** — `--no-tui` 标志,用于脚本和 CI/CD 流水线。
- **仅扫描模式** — `--scan-only` 用于独立运行 WAF 漏洞扫描器,而无需启动代理。
### 为什么是 Cloudflare? Cloudflare 被广泛认为是当今世界上最复杂的 Web Application Firewall。它不仅仅是一组规则——它是一个多层防御系统,结合了多种同时工作的技术来保护 Web 应用程序。 在网络层面,Cloudflare 在全球数百个数据中心运营,这意味着每个请求都会通过能够同时洞察数百万个网站流量模式的基础设施。这种全球可见性是其最强大的优势之一——它可以检测世界各地出现的攻击模式,并在几秒钟内跨所有受保护的属性部署缓解措施。 在检查层面,Cloudflare 同时跨多个维度分析请求:TCP/IP 指纹、TLS 指纹、HTTP/2 帧结构、header 顺序、请求时序、跨会话的行为模式以及 payload 内容。任何单一信号都不足以阻止请求,但 Cloudflare 将所有这些信号关联起来,为每个请求构建风险评分。 机器学习组件是使 Cloudflare 与传统 WAF 根本不同的原因。基于规则的 WAF 寻找已知的恶意模式,而 Cloudflare 的 ML 模型是在 PB 级的真实攻击流量上训练的。它们学习合法浏览器流量在传输层的样子——TCP 选项的精确序列、TLS ClientHello 的精确结构、HTTP/2 SETTINGS 帧的顺序——并标记任何偏离该基线的内容,即使 payload 本身看起来是干净的。这就是为什么简单的编码 payload 或轮换 header 对 Cloudflare 来说是不够的。绕过必须发生在传输层,而不是应用层。 ### 为什么 Cloudflare 难以绕过? 大多数 WAF 绕过技术针对的是规则引擎——混淆 payload、使用编码变体、跨参数拆分攻击字符串。这些技术对基于签名的 WAF 有效,因为这些 WAF 只查看 payload 内容。 Cloudflare 的防御甚至在 payload 被检查之前就开始运作。来自 Python HTTP 库的请求,即使发送完全良性的 payload,也可能被挑战或阻止,因为 TLS 指纹不匹配任何已知的浏览器。这意味着发出请求的工具在分析内容之前就被识别了。Cloudflare 称之为行为指纹识别,这是标准渗透测试工具在面对它时失败的主要原因,即使底层的 payload 是正确的。 Cloudflare 上的速率限制也是智能的——它不仅仅是每 IP 每秒请求数的计数器。它跟踪跨会话的请求模式,关联共享相同 ASN 的 IP 之间的行为,并应用渐进式挑战而不是硬性阻止,使得通过自动化测试很难检测到阈值。 ### 开发者的研究方法 EvilWAF 的开发者将 Cloudflare 视为研究对象,而不是攻击目标。研究方法是系统性的:观察 Cloudflare 如何响应不同的传输层身份,测量哪些信号触发挑战、阻止或静默通过,并根据实时数据构建其行为的统计模型。 这与阅读文档或研究 CVE 根本不同。Cloudflare 的行为无法从外部来源完全理解,因为它不断变化——模型被重新训练,阈值被调整,新信号被添加。理解它的唯一可靠方法是通过实时的、受控的、授权的实验和对收集数据的仔细分析。 这项研究的目标是产出工具和知识,帮助安全研究社区了解 WAF 绕过在 2026 年技术层面上究竟是什么样子的——不是为了造成伤害,而是为了确保防御者了解他们所依赖的技术的真实能力和局限性。一个了解 Cloudflare 如何检测和阻止请求的安全研究员更有能力测试其背后的应用程序是否真正受到保护。 EvilWAF 的扫描器架构——持久会话、统计置信度、多层分析、时序异常检测——之所以存在,是因为这种研究需要长时间的观察和严格的数据收集,而不是快速扫描。真正的 WAF 研究需要时间,工具应该反映这一点。
## 免责声明
**重要提示:使用 EvilWAF 前请阅读此内容**
- 此工具专为**授权安全测试**设计
- 你必须拥有测试目标系统的**明确许可**
- 适用于**教育目的**、**安全研究**和**授权渗透测试**
- **不得用于恶意或非法活动**
### 法律合规
- 用户对如何使用此工具负全责
- 开发者**不对**任何误用或造成的损害承担责任
- 确保遵守当地、州和联邦法律
## 支持
我不为非法用例提供支持,但我将帮助你在授权测试中达成目标。
[LinkedIn](https://www.linkedin.com/in/matrix-leons-77793a340)
**EvilWAF** 由 Matrix Leons 制作。
## CA 证书设置(HTTPS 必需)
```
# EvilWAF 生成一个本地 CA 以拦截 HTTPS 流量。请信任它一次。
# 首先运行 EvilWAF — CA 会在启动时自动生成
# 然后找到证书:
ls /tmp/evilwaf_ca_*/evilwaf-ca.pem
# Linux — 系统范围信任
sudo cp /tmp/evilwaf_ca_*/evilwaf-ca.pem /usr/local/share/ca-certificates/evilwaf-ca.crt
sudo update-ca-certificates
# macOS
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain \
/tmp/evilwaf_ca_*/evilwaf-ca.pem
# 对于 sqlmap 等工具,传递 --ignore-proxy=False 或适用于您工具的等效参数。
```
## 安装
```
# 1. 创建虚拟环境
python3 -m venv myenv
# 2. 激活虚拟环境
source myenv/bin/activate
# 3. Clone 并安装
git clone https://github.com/matrixleons/evilwaf.git
cd evilwaf
pip3 install -r requirements.txt
# 4. 构建 C extension(可选,提升 scanner 性能)
python setup_fast_scanner.py build_ext --inplace
python3 evilwaf.py -h
```
### Docker 安装
```
docker build -t evilwaf .
docker run -it evilwaf -t https://example.com
```
## 用法
```
# Basic — 标准代理模式
python3 evilwaf.py -t https://target.com
# Auto-Hunt Origin IP Behind WAF
python3 evilwaf.py -t https://target.com --auto-hunt
# EvilWAF 并行运行 10 个 scanner,按置信度对候选者进行排名,然后询问:
# [?] 使用 1.2.3.4 作为 origin IP 进行绕过? [y/n]:
# 如果确认,所有流量将直接发送到真实服务器,完全绕过 WAF。
# 手动指定 Origin IP(如果已知)
python3 evilwaf.py -t https://target.com --server-ip 1.2.3.4
# 配合 Tor IP 轮换
python3 evilwaf.py -t https://target.com --enable-tor
# Headless 模式(无 TUI)
python3 evilwaf.py -t https://target.com --no-tui
# WAF 漏洞扫描器 — 旁路代理
python3 evilwaf.py -t https://target.com --scan-vulns
# WAF 漏洞扫描器 — standalone,无代理
python3 evilwaf.py -t https://target.com --scan-only
# WAF 漏洞扫描器 — 自定义速率和输出
python3 evilwaf.py -t https://target.com --scan-only --scan-rps 5.0 --scan-output ./results
# Upstream Proxy
python3 evilwaf.py -t https://target.com --upstream-proxy socks5://127.0.0.1:1080
python3 evilwaf.py -t https://target.com --upstream-proxy http://user:pass@proxy.com:8080
python3 evilwaf.py -t https://target.com --proxy-file proxies.txt
# 自定义监听地址和端口
python3 evilwaf.py -t https://target.com --listen-host 0.0.0.0 --listen-port 9090
```
### 连接你的工具
EvilWAF 运行后,通过代理将任何工具指向它:
```
# sqlmap
sqlmap -u "https://target.com/page?id=1" --proxy=http://127.0.0.1:8080 --ignore-proxy=False
# ffuf
ffuf -u https://target.com/FUZZ -x http://127.0.0.1:8080
# nuclei
nuclei -u https://target.com -proxy http://127.0.0.1:8080
# curl(用于测试)
curl -x http://127.0.0.1:8080 https://target.com
```
### API Keys(可选)
```
export SHODAN_API_KEY="your_key"
export SECURITYTRAILS_API_KEY="your_key"
export VIRUSTOTAL_API_KEY="your_key"
export CENSYS_API_ID="your_id"
export CENSYS_API_SECRET="your_secret"
```
如果没有 API keys,EvilWAF 仍会使用免费来源运行(DNS 历史、SSL 证书、HTTP header、favicon 哈希、子域名枚举)。
### 准则
- 保持代码整洁并与现有风格一致
- 提交 PR 前测试你的更改
- 不要创建修改代理请求的 body、header、payload 或 cookie 的技术
- 对于大型更改,请先开 issue 以便我们讨论
## 许可证
根据 Apache License 2.0 版本授权
关于 Cloudflare 与研究
### 为什么是 Cloudflare? Cloudflare 被广泛认为是当今世界上最复杂的 Web Application Firewall。它不仅仅是一组规则——它是一个多层防御系统,结合了多种同时工作的技术来保护 Web 应用程序。 在网络层面,Cloudflare 在全球数百个数据中心运营,这意味着每个请求都会通过能够同时洞察数百万个网站流量模式的基础设施。这种全球可见性是其最强大的优势之一——它可以检测世界各地出现的攻击模式,并在几秒钟内跨所有受保护的属性部署缓解措施。 在检查层面,Cloudflare 同时跨多个维度分析请求:TCP/IP 指纹、TLS 指纹、HTTP/2 帧结构、header 顺序、请求时序、跨会话的行为模式以及 payload 内容。任何单一信号都不足以阻止请求,但 Cloudflare 将所有这些信号关联起来,为每个请求构建风险评分。 机器学习组件是使 Cloudflare 与传统 WAF 根本不同的原因。基于规则的 WAF 寻找已知的恶意模式,而 Cloudflare 的 ML 模型是在 PB 级的真实攻击流量上训练的。它们学习合法浏览器流量在传输层的样子——TCP 选项的精确序列、TLS ClientHello 的精确结构、HTTP/2 SETTINGS 帧的顺序——并标记任何偏离该基线的内容,即使 payload 本身看起来是干净的。这就是为什么简单的编码 payload 或轮换 header 对 Cloudflare 来说是不够的。绕过必须发生在传输层,而不是应用层。 ### 为什么 Cloudflare 难以绕过? 大多数 WAF 绕过技术针对的是规则引擎——混淆 payload、使用编码变体、跨参数拆分攻击字符串。这些技术对基于签名的 WAF 有效,因为这些 WAF 只查看 payload 内容。 Cloudflare 的防御甚至在 payload 被检查之前就开始运作。来自 Python HTTP 库的请求,即使发送完全良性的 payload,也可能被挑战或阻止,因为 TLS 指纹不匹配任何已知的浏览器。这意味着发出请求的工具在分析内容之前就被识别了。Cloudflare 称之为行为指纹识别,这是标准渗透测试工具在面对它时失败的主要原因,即使底层的 payload 是正确的。 Cloudflare 上的速率限制也是智能的——它不仅仅是每 IP 每秒请求数的计数器。它跟踪跨会话的请求模式,关联共享相同 ASN 的 IP 之间的行为,并应用渐进式挑战而不是硬性阻止,使得通过自动化测试很难检测到阈值。 ### 开发者的研究方法 EvilWAF 的开发者将 Cloudflare 视为研究对象,而不是攻击目标。研究方法是系统性的:观察 Cloudflare 如何响应不同的传输层身份,测量哪些信号触发挑战、阻止或静默通过,并根据实时数据构建其行为的统计模型。 这与阅读文档或研究 CVE 根本不同。Cloudflare 的行为无法从外部来源完全理解,因为它不断变化——模型被重新训练,阈值被调整,新信号被添加。理解它的唯一可靠方法是通过实时的、受控的、授权的实验和对收集数据的仔细分析。 这项研究的目标是产出工具和知识,帮助安全研究社区了解 WAF 绕过在 2026 年技术层面上究竟是什么样子的——不是为了造成伤害,而是为了确保防御者了解他们所依赖的技术的真实能力和局限性。一个了解 Cloudflare 如何检测和阻止请求的安全研究员更有能力测试其背后的应用程序是否真正受到保护。 EvilWAF 的扫描器架构——持久会话、统计置信度、多层分析、时序异常检测——之所以存在,是因为这种研究需要长时间的观察和严格的数据收集,而不是快速扫描。真正的 WAF 研究需要时间,工具应该反映这一点。
标签:Beacon Object File, Cloudflare, Google搜索, HTTP/2, IP 轮换, MITRE ATT&CK, Python, TCP 指纹, TLS 指纹 (JA3/JA4), Tor, WAF 绕过, Web 应用防火墙, 中间人攻击 (MITM), 代理工具, 匿名代理, 指纹伪造, 无后门, 流量混淆, 源端口欺骗, 绕过检测, 绕过防御, 网络安全, 请求拦截, 请求走私, 隐私保护