
Модульный фаззер для обхода WAF с поддержкой многопоточности, манипуляции запросами и кодирования полезной нагрузки для тестирования веб-приложений «красной команды».
pFuzz — это продвинутый инструмент фаззинга для Red Teaming, разработанный для наших исследований. Он помогает обходить веб-файрволы, используя одновременно различные методы.
pFuzz — это продвинутый инструмент фаззинга, разработанный для исследований веб-приложений. Он создан для ускорения процесса тестирования различных методов атак на разных механизмах безопасности.
pFuzz — это инструмент, написанный на Python, предназначенный для продвинутого фаззинга в исследованиях веб-приложений. Благодаря модульной структуре, в pFuzz можно быстро добавлять новые (как уже найденные, так и будущие) методы обхода WAF и тестировать их на всех остальных WAF. Помимо модульности, для повышения гибкости инструмента используются многопоточность, многопроцессорность и очереди; создана инфраструктура для будущих улучшений.
Инструмент спроектирован таким образом, что переданный запрос можно разобрать и легко изменить через объект. Благодаря этой структуре разработчики смогут легко вносить вклад и дорабатывать инструмент под свои нужды, не изменяя ядро приложения и не изучая его досконально.
Примечание: Если вы хотите внести свой вклад в разработку, вы можете сделать это не только дорабатывая ядро pFuzz, но и добавляя новые модули. Не стесняйтесь открывать новые PR :)
pFuzz — это инструмент, разработанный на Python для обеспечения продвинутых возможностей фаззинга при исследовании веб-приложений. Благодаря модульной структуре, в pFuzz можно быстро добавлять новые (как уже найденные, так и будущие) методы обхода WAF и тестировать их на всех остальных WAF. Помимо модульности, для повышения гибкости инструмента используются многопоточность, многопроцессорность и очереди; создана инфраструктура для будущих улучшений.
Инструмент спроектирован таким образом, что переданный запрос можно разобрать и легко изменить через объект. Благодаря этой структуре разработчики смогут легко вносить вклад и дорабатывать инструмент под свои нужды, не изменяя ядро приложения и не изучая его досконально.
Примечание: Если вы хотите внести свой вклад в разработку, вы можете сделать это не только через разработку ядра (core), но и добавляя новые модули. Ждём ваших новых PR :)
_____
_ __ | ___|_ _ ____ ____
| '_ \ | |_ | | | ||_ /|_ /
| |_) || _| | |_| | / / / /
| .__/ |_| \__,_|/___|/___|
|_|
![]() Emre Övünç | ![]() Mert Taşçı | ![]() Evren Yalçın |

sudo pip3 install virtualenv
python3 -m venv myvenv
source myvenv/bin/activate
pip3 install -r requirements.txt
python3 pfuzz.py --help
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
python3 pfuzz.py --help
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
python3 pfuzz.py -r request.txt -f -s
python3 pfuzz.py -r request.txt -f -l
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 show this help message and exit
--proxy/-p PROXY proxy [IP:PORT]
--log/-l enable logging
--ssl/-s enable ssl
--threads/-t NUMBER thread(s) number [default=1]
--version/-v show program's version number and exit
[Request Options]:
--request/-r REQUEST request file
--delay/-d TIME set a delay between requests [default=0.05]
--encode/-e encode space chars in uri/body
--full-encode/-fe encode all chars in uri/body
[Output Options]:
--output/-o OUTPUT output important info [terminal/folder name]
--output-details/-od OUTPUT
output all details [terminal/folder name]
[Modules]:
--fuzz/-f run fuzzing module
--charfuzz/-cf run char fuzzing module
--manipulate/-m run manipulating headers module
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
- modules
- charfuzzer.py
- exparse.py
- fuzzer.py
- headeroperations.py
- manupilatingheaders.py
from reqparser import HTTPReq
myreq = HTTPReq.getobj()
...
myreq.uri
myreq.body
myreq.http
myreq.referer
myreq.origin
myreq.host
myreq.cookie
...
Если вы хотите получить полезные нагрузки из Excel, вы можете использовать методы getpayloads из modules.exparse.
from modules.exparse import getpayloads
getpayloads(fuzzsheetName, genericcolmnName, fuzzingpayloads)