写点什么

如何使用 pFuzz 以多种方法验证 Web 应用程序防火墙的安全性

作者:H
  • 2021 年 12 月 22 日
  • 本文字数:1689 字

    阅读完需:约 6 分钟

如何使用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
复制代码


用户头像

H

关注

还未添加个人签名 2021.08.04 加入

还未添加个人简介

评论

发布
暂无评论
如何使用pFuzz以多种方法验证Web应用程序防火墙的安全性