关于WAF-bypass
WAF-bypass是一款功能强大的Web应用防火墙安全测试工具,该工具基于Python开发,并且完全开源。在该工具的帮助下,广大研究人员可以使用预定义和可定制的Payload来分析任何Web应用防火墙的安全性,并在资产被攻击之前提升系统防火墙的安全性能。
工具用途
根据用途,有效负载位于相应的文件夹中:
- FP – 误报有效负载
- API – API 测试有效负载
- CM – 自定义 HTTP 方法有效负载
- GraphQL – GraphQL 测试有效负载
- LDAP – LDAP 注入等负载
- LFI – 本地文件包含有效负载
- MFD – 多部分/表单数据有效负载
- NoSQLi – NoSQL注入有效负载
- OR – 打开重定向有效负载
- RCE – 远程代码执行有效负载
- RFI – 远程文件包含有效负载
- SQLi – SQL 注入有效负载
- SSI – 服务器端 包括有效负载
- SSRF – 服务器端请求伪造有效负载
- SSTI – 服务器端模板注入有效负载
- UWA – 不需要的访问有效负载
- XSS – 跨站点脚本有效负载
工具下载&安装
本地安装
由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好Python 3环境。接下来,广大研究人员可以使用下列命令将该项目源码克隆至本地:
git clone https://github.com/nemesida-waf/waf_bypass.git /opt/waf-bypass/
然后使用pip3命令和项目提供的requirements.txt安装该工具所需的依赖组件:
python3 -m pip install -r /opt/waf-bypass/requirements.txt
Docker安装
最新版本的WAF-bypass已经托管到了DockerHub上,我们也可以直接使用下列命令来拉取该工具的Docker镜像:
docker pull nemesida/waf-bypass
工具选项
'--proxy' (--proxy='http://proxy.example.com:3128') - 指定需要连接的代理主机;
'--header' (--header 'Authorization: Basic YWRtaW46YWRtaW4=' --header 'X-TOKEN: ABCDEF') - 指定所有请求发送时使用的HTTP Header,支持使用多个;
'--user-agent' (--user-agent 'MyUserAgent 1/1') - 指定发送所有请求时使用的HTTP User-Agent,当Payload设置了User-Agent时此选项失效;
'--block-code' (--block-code='403' --block-code='222') - 指定HTTP状态码,默认为403;
'--threads' (--threads=15) - 指定并行扫描线程数量,默认为10;
'--timeout' (--timeout=10) - 指定请求处理超时,默认为30(秒);
'--json-format' - 设置将扫描结果存储为JSON格式文件;
'--details' - 显示假阳性和假阴性Payload,不支持JSON格式;
'--exclude-dir' - 排除Payload的目录,支持排除多个,例如--exclude-dir='SQLi' --exclude-dir='XSS';
工具使用
本地使用
python3 /opt/waf-bypass/main.py --host='example.com'
Docker使用
docker run nemesida/waf-bypass --host='example.com'
工具运行截图
许可证协议
本项目的开发与发布遵循MIT开源许可证协议。
项目地址
WAF-bypass tools:【GitHub传送门】