WAFBypass一款高级WAF检测与绕过工具

工具介绍

攻击即防御 ------ 了解你的敌人,理解你的目标

WAFBypass 是一款高级Web应用防火墙(WAF)检测与绕过工具,旨在回答一个问题:"目标真的有WAF防护吗?" 它能够检测目标Web应用是否受到防火墙保护,并自动尝试寻找有效的绕过方法。

本项目在原 WhatWaf 的基础上进行了全面升级,新增了大量WAF检测插件、绕过脚本,并对核心引擎进行了现代化改造。

功能特性

  • WAF检测 :支持检测 112+ 种Web应用防火墙和防护系统
  • 自动绕过 :内置 61 种绕过脚本(Tamper Scripts)
  • 多种输入方式:支持单URL、批量URL列表、Burp Suite导出文件、Googler JSON文件
  • 多种输出格式:支持 JSON、YAML、CSV 格式化输出
  • 数据库缓存:自动缓存检测结果,避免重复扫描
  • 代理支持:支持 HTTP/HTTPS/SOCKS 代理和 Tor 网络
  • 多线程扫描:支持并发请求,提高扫描效率
  • 自定义Payload:支持自定义攻击载荷
  • 指纹识别:支持保存和导出WAF指纹
  • Web服务器识别:自动识别后端Web服务器类型
  • POST请求支持:支持GET和POST两种请求方式
  • 流量记录:支持将HTTP请求流量保存到文件
  • HTML报告:生成专业级HTML渗透测试报告
  • Payload分类:内置SQLi/XSS/XXE/SSTI/LFI/CMDi 6类攻击载荷库
  • 配置文件:支持YAML配置文件,一键加载扫描设置

可检测的防火墙

WAFBypass 目前可以检测 112+ 种Web应用防护系统,包括但不限于:

类别 防火墙
云服务商 CloudFlare, AWS WAF v2, Azure WAF, GCP Cloud Armor, Tencent Cloud WAF, Huawei Cloud WAF, Alibaba Cloud WAF
CDN/WAF Akamai, CloudFront, Fastly, EdgeCast, Incapsula, Sucuri, StackPath
企业级 F5 BIG-IP/ASM, Fortinet FortiWeb, Citrix NetScaler, Barracuda, Radware, Imperva
开源方案 ModSecurity, NAXSI, OpenResty WAF, Shadow Daemon, Lua Resty WAF
国内厂商 安全狗(SafeDog), 阿里云盾, 百度云加速, 创宇盾, 玄武盾, 安恒明御(DBapp), 深信服(Sangfor), 绿盟(NSFOCUS), 知道创宇(KnownSec), 奇安信(Qianxin), 山石(Hillstone), 启明星辰(Venustech), 天融信(TopSec), 火山引擎(Volcengine), 腾讯云WAF, 华为云WAF
其他 Wordfence, Wallarm, Reblaze, Signal Sciences, Cloudbric

查看完整列表:

bash 复制代码
wafbypass --wafs

可用的绕过脚本

WAFBypass 内置 61 种绕过脚本,涵盖以下技术:

类型 脚本示例
编码转换 URL编码、双重/三重URL编码、Base64编码、Hex编码、HTML实体编码
字符混淆 大小写随机变换、Unicode规范化、UTF-8过长编码、逆序编码
空白字符 空格替换(Tab/Comment/+/NULL)、随机空白字符、Chunked传输编码
SQL绕过 SQL注释混淆、双SQL注释、数值操作转换、关键字拆分、参数碎片化
XSS绕过 HTML注释混淆、XSS向量变异、Script标签拆分
HTTP层面 HTTP参数污染(HPP)、CRLF注入、方法篡改、Content-Type操控
Payload分片 智能参数分片、HPP多策略、Multipart表单分片、SQL注释分片、管道化请求、NULL字节分片、编码链分片
高级技巧 JSON/XML编码、缓冲区溢出填充、嵌套编码、随机垃圾字符

查看完整列表:

bash 复制代码
wafbypass --tampers

Payload分片绕过技术

WAFBypass v2.1 新增了强大的 Payload分片绕过 能力,将恶意Payload拆分为多个看似无害的片段,绕过基于单参数正则匹配的WAF规则:

分片策略 原理 适用场景
HPP参数污染 将Payload拆分到同名参数的多个副本中,利用后端取最后一个值的特性 PHP(Joomla/WordPress)、JSP、ASP.NET
智能参数分片 按SQL关键字边界拆分,分配到不同参数名(q1,q2,q3...) 支持参数合并的自定义应用
Multipart分片 使用multipart/form-data边界将Payload隐藏在多个表单部分中 文件上传接口、REST API
SQL注释分片 在SQL关键字/字符间插入内联注释块(/**/),破坏关键字完整性匹配 基于正则的SQL注入防护
管道化请求 在前面附加无害的pipeline请求,利用WAF只检查第一个请求的弱点 HTTP/1.1 Keep-Alive连接
NULL字节分片 在字符/单词间插入NULL字节,利用C语言字符串终止截断WAF解析 基于C/C++的WAF引擎
编码链分片 将Payload不同部分使用不同编码(URL/Unicode/HTML实体),WAF难以统一解码 多层编码处理的WAF

使用示例:

bash 复制代码
# 使用HPP分片绕过
python wafbypass -u "https://target.com/?id=1" -p "' UNION SELECT NULL--" -e "' UNION SELECT NULL--" content.tampers.hpp_split

# 组合多种分片策略
python wafbypass -u "https://target.com/?q=test" -p "' UNION SELECT NULL--" \
  -e "' UNION SELECT NULL--" content.tampers.param_fragment content.tampers.null_byte_fragment content.tampers.sql_comment_fragment

使用方法

基本用法

bash 复制代码
# 检测单个URL的WAF
python wafbypass -u https://example.com/index.php?id=1

# 从文件批量检测
python wafbypass -l targets.txt

# 使用自定义Payload
python wafbypass -u https://example.com/?q=1 -p "' OR 1=1--,<script>alert(1)</script>"

# 跳过绕过检测,仅识别防火墙
python wafbypass -u https://example.com/ --skip

高级用法

bash 复制代码
# 使用代理
python wafbypass -u https://example.com/ --proxy socks5://127.0.0.1:1080

# 使用Tor
python wafbypass -u https://example.com/ --tor

# 多线程扫描
python wafbypass -l targets.txt -t 10

# 输出JSON格式结果
python wafbypass -u https://example.com/ -F -J

# 编码Payload
python wafbypass -e "' UNION SELECT NULL--" content.tampers.base64encode

# 保存流量日志
python wafbypass -u https://example.com/ --traffic traffic.log

工具下载

复制代码
https://github.com/hnytgl/wafbypass
相关推荐
Pluto-20032 年前
蚁剑修改特征性信息
笔记·web安全·网络安全·waf绕过·蚁剑
kali-Myon3 年前
NewStarCTF2023week2-R!!C!!E!!
git·web安全·正则表达式·php·waf绕过