
通过插入垃圾数据绕过 WAF 的 Burp 插件
大多数 Web 应用防火墙(WAF)在发送请求体时,对其可以处理的数据量存在限制。这意味着对于包含请求体的 HTTP 请求(即 POST、PUT、PATCH 等),通常可以通过简单地在前面添加垃圾数据来绕过 WAF。
当请求被填充这些垃圾数据后,WAF 将处理请求中最多 X KB 的数据并进行分析,但超过 WAF 限制之后的所有内容都会直接通过。
nowafpls 是一个简单的 Burp 插件,它会在 Repeater 选项卡中根据上下文将垃圾数据插入到你的 HTTP 请求中。你可以从预设的垃圾数据量中选择,也可以通过选择“自定义”选项插入任意数量的垃圾数据。
这个工具只有大约 80 行 Python 代码,非常简单,但适用于大多数 WAF,哈哈。
| WAF 提供商 | 最大请求体检查大小限制 |
|---|
| Cloudflare | 对于规则集引擎为 128 KB,企业版最高 500 MB |
| AWS WAF | 8 KB - 64 KB(可根据服务配置) |
| Akamai | 8 KB - 128 KB |
| Azure WAF | 128 KB |
| Fortiweb by Fortinet | 100 MB |
| Barracuda WAF | 64 KB |
| Sucuri | 10 MB |
| Radware AppWall | 对于云 WAF 最高 1 GB |
| F5 BIG-IP WAAP | 20 MB(可配置) |
| Palo Alto | 10 MB |
| Cloud Armor by Google | 8 KB(可增加到 128 KB) |
nowafpls 是一个基于 Jython 的 Burp 插件。
nowafpls 将根据请求类型(URLEncoded/XML/JSON)自动插入垃圾数据。
此插件的 Caido 版本由 @Rhynorater 维护,可在以下 gist 中找到:
https://gist.github.com/Rhynorater/ace68d4976357ca0937cb4669f303306
或位于 EvenBetter Workflow Library 中。
MIT