Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
pFuzz — Модульный фаззер для обхода WAF с поддержкой многопоточности, манипуляции запросами и кодирования полезной нагрузки для тестирования веб-приложений «красной команды». | Kitploit
Инструменты/GitHubGitHub/redsection/pfuzz
Обход WAFВеб-безопасностьФаззингТестирование на ПроникновениеRed Teaming
GitHubredsection/pfuzz

pFuzz

Модульный фаззер для обхода WAF с поддержкой многопоточности, манипуляции запросами и кодирования полезной нагрузки для тестирования веб-приложений «красной команды».

Репозиторий
161315 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Что такое pFuzz / pFuzz Nedir ❓

pFuzz — это продвинутый инструмент фаззинга для Red Teaming, разработанный для наших исследований. Он помогает обходить веб-файрволы, используя одновременно различные методы.

pFuzz — это продвинутый инструмент фаззинга, разработанный для исследований веб-приложений. Он создан для ускорения процесса тестирования различных методов атак на разных механизмах безопасности.

Описание [EN]

pFuzz — это инструмент, написанный на Python, предназначенный для продвинутого фаззинга в исследованиях веб-приложений. Благодаря модульной структуре, в pFuzz можно быстро добавлять новые (как уже найденные, так и будущие) методы обхода WAF и тестировать их на всех остальных WAF. Помимо модульности, для повышения гибкости инструмента используются многопоточность, многопроцессорность и очереди; создана инфраструктура для будущих улучшений.

Инструмент спроектирован таким образом, что переданный запрос можно разобрать и легко изменить через объект. Благодаря этой структуре разработчики смогут легко вносить вклад и дорабатывать инструмент под свои нужды, не изменяя ядро приложения и не изучая его досконально.


Примечание: Если вы хотите внести свой вклад в разработку, вы можете сделать это не только дорабатывая ядро pFuzz, но и добавляя новые модули. Не стесняйтесь открывать новые PR :)


Описание [TR]

pFuzz — это инструмент, разработанный на Python для обеспечения продвинутых возможностей фаззинга при исследовании веб-приложений. Благодаря модульной структуре, в pFuzz можно быстро добавлять новые (как уже найденные, так и будущие) методы обхода WAF и тестировать их на всех остальных WAF. Помимо модульности, для повышения гибкости инструмента используются многопоточность, многопроцессорность и очереди; создана инфраструктура для будущих улучшений.

Инструмент спроектирован таким образом, что переданный запрос можно разобрать и легко изменить через объект. Благодаря этой структуре разработчики смогут легко вносить вклад и дорабатывать инструмент под свои нужды, не изменяя ядро приложения и не изучая его досконально.


Примечание: Если вы хотите внести свой вклад в разработку, вы можете сделать это не только через разработку ядра (core), но и добавляя новые модули. Ждём ваших новых PR :)


root@kitploit:~
        _____                 
 _ __  |  ___|_   _  ____ ____
| '_ \ | |_  | | | ||_  /|_  /
| |_) ||  _| | |_| | / /  / / 
| .__/ |_|    \__,_|/___|/___|
|_|                           

Разработчики 💁

Алгоритм работы 📋

pFuzz

Установка и использование 📚

root@kitploit:~
sudo pip3 install virtualenv
python3 -m venv myvenv
source myvenv/bin/activate
pip3 install -r requirements.txt
python3 pfuzz.py --help

Зависимости:

root@kitploit:~
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

Использование

  • Справка
root@kitploit:~
python3 pfuzz.py --help
  • Модуль манипуляции заголовками
root@kitploit:~
python3 pfuzz.py -r request.txt -m
  • Модуль символьного фаззинга
root@kitploit:~
python3 pfuzz.py -r request.txt -cf
  • Модуль фаззинга
root@kitploit:~
python3 pfuzz.py -r request.txt -f
  • Добавление прокси
root@kitploit:~
python3 pfuzz.py -r request.txt -f --proxy 127.0.0.1:8080
  • Добавление задержки между запросами
root@kitploit:~
python3 pfuzz.py -r request.txt -f -d 3
  • Включение TLS/SSL-соединения
root@kitploit:~
python3 pfuzz.py -r request.txt -f -s
  • Включение логирования
root@kitploit:~
python3 pfuzz.py -r request.txt -f -l
  • Включение кодирования полезной нагрузки / полного кодирования
root@kitploit:~
python3 pfuzz.py -r request.txt -f -e
root@kitploit:~
python3 pfuzz.py -r request.txt -f -fe
  • Установка количества потоков
root@kitploit:~
python3 pfuzz.py -r request.txt -f -t 5
  • Вывод в терминал
root@kitploit:~
python3 pfuzz.py -r request.txt -f -o terminal
root@kitploit:~
python3 pfuzz.py -r request.txt -f -od terminal
  • Вывод в файл
root@kitploit:~
python3 pfuzz.py -r request.txt -f -o ~/Desktop/
root@kitploit:~
python3 pfuzz.py -r request.txt -f -od ~/tmp/

Справка 💻

root@kitploit:~
              _____                 
       _ __  |  ___|_   _  ____ ____
      | '_ \ | |_  | | | ||_  /|_  /
      | |_) ||  _| | |_| | / /  / / 
      | .__/ |_|    \__,_|/___|/___|
      |_|
   ------------------------------------
   @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/ необходимо создать файл Python с названием модуля.
root@kitploit:~
- modules
        - charfuzzer.py
        - exparse.py
        - fuzzer.py
        - headeroperations.py
        - manupilatingheaders.py
  • Вы можете использовать разобранный объект, например myreq = HTTPReq.getobj()
root@kitploit:~
from reqparser import HTTPReq
myreq = HTTPReq.getobj()
  • Он содержит множество атрибутов, производных от класса HTTPReq. Вы можете увидеть их в reqparser.py.
root@kitploit:~
...
myreq.uri
myreq.body
myreq.http
myreq.referer
myreq.origin
myreq.host
myreq.cookie
...
  • Если вы хотите получить полезные нагрузки из Excel, вы можете использовать методы getpayloads из modules.exparse.

    • getpayloads(fuzzsheetName, genericcolmnName, fuzzingpayloads)
    root@kitploit:~
    from modules.exparse import getpayloads
    getpayloads(fuzzsheetName, genericcolmnName, fuzzingpayloads)
    
    • Мы задаём статические объекты, такие как fuzzsheetName, в файле statics.py, который находится в папке static/.
    root@kitploit:~
    # Fuzzing Module in static/statics.py
    fuzzsheetName   = 'Fuzzing'
    genericcolmnName = 'Payload'
    fuzzingpayloads = []
    
  • Теперь вы можете изменять/добавлять/удалять атрибуты по своему усмотрению.

root@kitploit:~
myreq.uri = tmpuri + payload
myreq.addheader(header, "127.0.0.1")
myreq.content_type = "text/html"
  • Для остановки многопоточности следует добавить полезную нагрузку #exitme# в конец ваших нагрузок и установить statics.exitCall = True, чтобы проверять, пуста ли очередь.
root@kitploit:~
from modules.exparse import getpayloads
for payload in fuzzingpayloads:
if payload == '#exitme#':
    statics.exitCall = True
else:
    [OPERATIONS]
  • Когда ваш объект (запрос) готов к отправке, вы можете использовать функцию sendit() для постановки его в очередь.
root@kitploit:~
from reqsender import sendit
sendit(myreq)
  • Если вам нужно изменить основные функции pFuzz, вы можете создать pull request или открыть issue.

Некоторые важные функции для разработки новых модулей


Какие WAF мы обошли?

  • FortiWeb
  • Cloudflare
  • Sucuri
  • Akamai
  • Imperva
  • F5 WAF
Скачать инструмент

Emre Övünç


Mert Taşçı


Evren Yalçın

ЦельМодуль/КлассФункцияПараметр(ы)
Отправить запросreqsender.pysendit()объект
Использовать объект запросаreqparser.py/HTTPReqgetobj()-
Добавить собственный заголовокreqparser.py/HTTPReqOBJECT.addheader()имя_нового_заголовка,значение
Удалить заголовокreqparser.py/HTTPReqOBJECT.delheader()имя_заголовка
Изменить заголовокreqparser.py/HTTPReqOBJECT.changeheader()имя_заголовка,новое_имя
Получить полезную нагрузку из файлаexparse.pygetpayloads()имя_листа,имя_столбца
Записать лог (info/debug/warning)waflogger.pyloginfo/logdebug/logwarn()сообщение_лога