如何使用pFuzz以多种方法验证Web应用程序防火墙的安全性
关于pFuzz
pFuzz是一款功能强大的Web应用程序防火墙安全检测/绕过工具,可以帮助广大研究人员同时通过多种方式绕过目标Web应用程序防火墙,以测试WAF的安全性。
pFuzz本质上是一款高级红队模糊测试工具,主要用于研究目的。pFuzz基于Python编程语言开发,可以帮助广大研究人员在Web应用程序安全研究方面提供高级模糊测试能力。该工具采用模块化结构开发,因此我们可以快速向pFuzz添加新的功能模块或绕过方法,并对其他WAF进行测试。除了模块化结构之外,pFuzz还使用了多线程、多处理和队列结构,使工具更加灵活,并为未来的开发奠定了强大而稳定的基础设施。
工具机制流程
支持绕过的Web应用防火墙
FortiWeb
Cloudflare
Sucuri
Akamai
Imperva
F5 WAF
依赖组件
cffi==1.14.3
cryptography==3.1.1
numpy==1.19.2
pandas==1.1.3
pycparser==2.20
pyOpenSSL==19.1.0
python-dateutil==2.8.1
pytz==2020.1
six==1.15.0
xlrd==1.2.0
工具安装和使用
sudo pip3 install virtualenv python3 -m venv myvenv source myvenv/bin/activate pip3 install -r requirements.txt python3 pfuzz.py --help
使用样例
查看帮助信息
python3 pfuzz.py --help
修改Header模块
python3 pfuzz.py -r request.txt -m
字符模糊测试模块
python3 pfuzz.py -r request.txt -cf
模糊测试模块
python3 pfuzz.py -r request.txt -f
添加代理
python3 pfuzz.py -r request.txt -f --proxy 127.0.0.1:8080
在请求间添加延迟间隔
python3 pfuzz.py -r request.txt -f -d 3
启用TLS/SSL连接
python3 pfuzz.py -r request.txt -f -s
启用日志
python3 pfuzz.py -r request.txt -f -l
启用Payload编码/完整编码
python3 pfuzz.py -r request.txt -f -e python3 pfuzz.py -r request.txt -f -fe
设置多线程
python3 pfuzz.py -r request.txt -f -t 5
将结果输出至终端窗口
python3 pfuzz.py -r request.txt -f -o terminal python3 pfuzz.py -r request.txt -f -od terminal
将结果输出至文件
python3 pfuzz.py -r request.txt -f -o ~/Desktop/ python3 pfuzz.py -r request.txt -f -od ~/tmp/
工具帮助
_____ _ __ | ___|_ _ ____ ____ | '_ \ | |_ | | | ||_ /|_ / | |_) || _| | |_| | / / / / | .__/ |_| \__,_|/___|/___| |_| ------------------------------------ @EmreOvunc | @merttasci | @xsuperbug ------------------------------------ v0.2.4 ------------------------------------ usage: pfuzz.py [-h] [--request REQUEST] [--proxy PROXY] [--log] [--ssl] [--threads THREADS] [--output OUTPUT] [--delay TIME] [--output-details OUTPUT] [--full-encode] [--encode] [--fuzz] [--charfuzz] [--manipulate] [--version] optional arguments: --help/-h 显示帮助信息并退出 --proxy/-p PROXY 设置代理[IP:PORT] --log/-l 启用日志 --ssl/-s 启用 --threads/-t NUMBER 多线程数量[默认=1] --version/-v 显示程序版本信息并退出 [Request Options]: --request/-r REQUEST 请求文件 --delay/-d TIME 请求之间的延迟间隔[默认=0.05] --encode/-e 编码URI/Body中的空格字符 --full-encode/-fe 编码URI/Body中的所有字符 [Output Options]: --output/-o OUTPUT 输出重要信息[终端/文件夹名称] --output-details/-od OUTPUT 输出所有详细信息[终端/文件夹名称] [Modules]: --fuzz/-f 运行模糊测试模块 --charfuzz/-cf 运行字符模糊测试模块 --manipulate/-m 运行Header篡改模块 Usage: python3 pfuzz.py -r req.txt --log -s --fuzz -d 1 --encode -o terminal --threads 2 Usage: python3 pfuzz.py -r req.txt -f -l --proxy 127.0.0.1:8080 --output-details ~/output
项目地址
pFuzz:【GitHub传送门】
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
文章目录