导语:WAF 这几年进化得很快,早年那套改改 payload、换换请求头的把戏,现在基本走不通了。EvilWAF 换了个思路——它不碰你的攻击载荷,直接从传输层下手:轮换 TCP 配置、伪造 TLS 指纹,必要时还能帮你挖出 WAF 后面的真实源站 IP。顺便它还能反过来当 WAF 扫描器用,一次探十层防御。

一、EvilWAF 是什么
上一篇文章我们聊过 WAF 是什么、手工怎么绕。现在的问题是,防护侧已经不满足于简单的特征匹配了,开始做行为分析。结果就是,你精心藏起来的 payload 往往还没摸到应用逻辑就被拦下来。
EvilWAF 是为了对付这个局面来的。它是一个开源渗透测试工具,工作方式是透明中间人(MITM)代理加 WAF 漏洞扫描器。
关键区别在这:sqlmap 那类工具是改 payload、改 header;EvilWAF 一个字都不动你的攻击数据,它在传输层做文章。这样它能绕开 WAF 的行为检测,同时顺手检查防火墙本身的弱点。
它有两种工作模式:代理模式,以及独立的 WAF 扫描器。
代理模式下,你在本地跑起 EvilWAF,让你的攻击工具把流量发过来。这条链路上没有任何载荷篡改——sqlmap 发出的 SQL 注入语句、HTTP body、应用头,EvilWAF 原样放行。sqlmap 负责找应用层漏洞,EvilWAF 负责处理连接:轮换 TCP 配置、TLS 指纹(比如 JA3、JA4),让 WAF 既不拦你也不给你限速。
更狠的是 auto-hunt 选项。开了它,EvilWAF 会想办法找出 WAF 背后的真实后端 IP,然后把 sqlmap 的流量直接送到源站——WAF 干脆被绕过去了。
独立扫描模式下它也能单干。加上 scan-only 参数启动,目标就变成防火墙本身:横跨十个防御层做一轮完整体检,规则引擎有没有缺口、限流配得对不对、已知的规避手法能不能钻空子、HTTP 方法行为是否正常、TLS 设置有没有松的地方,全给它查一遍。
二、安装
在 Kali Linux 上装,用 Python 虚拟环境就行:
kali> git clone https://github.com/matrixleons/evilwaf.git
kali> cd evilwaf
kali> python3 -m venv myenv
kali> source myenv/bin/activate
kali> pip3 install -r requirements.txt
kali> python3 evilwaf.py -h

因为 EvilWAF 是个完整的 HTTPS 中间人代理,它得能看到加密流量。第一次运行时会自动生成一套本地 CA 证书。你需要在 Kali 上信任这套证书,否则代理工具用起来会报 SSL 错误。
先生成证书,跑一次就行:
kali> python3 evilwaf.py -t https://example.com
然后导入证书并设置为系统级信任:
kali> sudo cp /tmp/evilwaf_ca_*/evilwaf-ca.pem /usr/local/share/ca-certificates/evilwaf-ca.crt
kali> sudo update-ca-certificates

三、跑起来
3.1 代理模式
指定审计目标启动,默认会开一个实时终端界面,监听 127.0.0.1:8080:
kali> python3 evilwaf.py -t https://target.com
EvilWAF 跑着之后,让你的攻击工具把请求走这个代理。比如 sqlmap:
kali> sqlmap -u "https://target.com/page?id=1" --proxy=http://127.0.0.1:8080
这时候 EvilWAF 的界面就会动起来。

你可以实时看流量,更关键的是它会显示:哪些传输层操纵技术生效了、用了什么指纹配置、往出站请求里注入了哪些头。这块信息在调绕过策略时非常有用。
auto-hunt 是另一个值钱的功能。它并行跑 10 个扫描器来找源站 IP,手段包括 DNS 历史记录、SSL 证书分析、子域名枚举等等:
kali> python3 evilwaf.py -t https://target.com --auto-hunt
找到高置信度的 IP 之后,它会问你要不要把流量直接路由到真实服务器。

如果你已经知道源站 IP,也可以手动指定:
kali> python3 evilwaf.py -t https://target.com --server-ip 1.2.3.4
3.2 独立 WAF 扫描模式
不跑任何第三方工具,EvilWAF 自己就能给防火墙做配置体检:
kali> python3 evilwaf.py -t https://target.com --scan-only
十个防御层同时开探。


四、说说 Cloudflare
得单独拎出来讲一句:Cloudflare。
今天的 Cloudflare 算得上一线 WAF,它不是一堆规则,而是一整套多层防御体系。全球几百个数据中心协同,让它能在所有受保护的站点上快速识别并缓解新出现的攻击模式。
它判断一个请求的信号很多:TCP/IP 与 TLS 指纹、HTTP/2 结构、行为模式,然后把这些因素关联起来,给每个请求打一个风险分。跟那种依赖已知攻击特征的传统 WAF 不同,Cloudflare 用的是在海量真实攻击流量上训练出来的机器学习模型,专门识别与正常浏览器流量的偏离。
这就让它很难打。规则型 WAF 上好用的招,落到它身上基本失效。它的行为指纹甚至在检查载荷之前就先给你拦了——光凭传输层特征就能判定你是个工具。限流也做得细,它会追踪会话模式并逐级加挑战,阈值很难被有效利用。
所以 EvilWAF 只是”绕过 WAF 可能长什么样”的一个例子,绝对不是穿甲弹。
五、小结
EvilWAF 算是防火墙绕过进入新阶段的一个标志。载荷混淆、简单编码这些东西,在现代 WAF 面前基本没用了。真正需要关注的是 EvilWAF 这类在传输层做文章的思路。

原文作者 AirCorridor 是一名资深网络安全专家,拥有信息技术与系统方向的网络安全硕士学位,做过政府平台的加固、Linux 高级运维和专业的网络攻防,同时也在 Hackers-Arise 平台上供稿。
对漏洞赏金、红队或者 AI 安全感兴趣的话,可以看看他们的培训中心的课程。
素材出处
本文为编译报道,内容整理自以下原始资料:
- 原文标题:Bypass Web Application Firewall (WAF) with EvilWAF
- 原文地址:https://hackers-arise.com/bypass-web-application-firewall-waf-with-evilwaf/
- 工具仓库:https://github.com/matrixleons/evilwaf
- 延伸阅读:WAF 介绍与手工绕过方法
- 原文作者:AirCorridor
- 文中截图版权归原作者所有,本文仅作技术学习交流使用














暂无评论内容