如何使用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传送门】
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
文章目录