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

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

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

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

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

Категории

Все категории
Loading categories
recollapse — Инструмент фаззинга регулярных выражений методом черного ящика, который генерирует полезные нагрузки для обхода проверок ввода, выявления нормализаций и обхода WAF в веб-приложениях. | Kitploit
Инструменты/GitHubGitHub/0xacb/recollapse
Генерация полезной нагрузкиОбход WAFВеб-безопасностьФаззинг
GitHub0xacb/recollapse

recollapse

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

Репозиторий
1.4k1501 год назадПроверено Kitploit

Популярное

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

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

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

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

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

REcollapse

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

Он также может быть полезен для обхода WAF и слабых средств смягчения уязвимостей. Для получения дополнительной информации ознакомьтесь с записью в блоге REcollapse.

Цель этого инструмента — генерация полезных нагрузок для тестирования. Непосредственный фаззинг следует выполнять с помощью других инструментов, таких как Burp (intruder), Caido (automate), ffuf или аналогичных.


Установка

Требования: Python 3

pip3 install recollapse или python3 setup.py install или pip3 install .

Docker

docker build -t recollapse . или docker pull 0xacb/recollapse


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

root@kitploit:~
$ recollapse -h
usage: recollapse [-h] [-m MODES] [-e {1,2,3,4}] [-r RANGE] [-s SIZE] [-f FILE] [-an] [-mn MAXNORM] [-mt MAXTRUNC] [-nt] [-tt] [-ct]
                  [--html] [--version]
                  [input]

REcollapse is a helper tool for black-box regex fuzzing to bypass validations and discover normalizations in web applications

positional arguments:
  input                 original input

options:
  -h, --help            show this help message and exit
  -m, --modes, -p, --positions MODES
                        variation modes. Example: 1,2,3,4,5,6,7 (default). 1: starting, 2: separator, 3: normalization, 4:
                        termination, 5: regex metacharacters, 6: case folding/upper/lower, 7: byte truncation
  -e, --encoding {1,2,3,4}
                        1: URL-encoded format (default), 2: Unicode format, 3: Raw format, 4: Double URL-encoded format
  -r, --range RANGE     range of bytes for fuzzing. Example: 0,0xff (default)
  -s, --size SIZE       number of fuzzing bytes (default: 1)
  -f, --file FILE       read input from file
  -an, --alphanum       include alphanumeric bytes in fuzzing range
  -mn, --maxnorm MAXNORM
                        maximum number of normalizations (default: 3)
  -mt, --maxtrunc MAXTRUNC
                        maximum number of truncations (default: 3)
  -nt, --normtable      print normalization table
  -tt, --trunctable     print truncation table
  -ct, --casetable      print case table
  --html                output tables in HTML format
  --version             show recollapse version

Подробное объяснение опций

Рассмотрим this_is.an_example в качестве входных данных.

Режимы

  1. Фаззинг начала входных данных: $this_is.an_example
  2. Фаззинг до и после специальных символов: this$_$is$.$an$_$example
  3. Фаззинг позиций нормализации: замена всех возможных байтов в соответствии с таблицей нормализации
  4. Фаззинг конца входных данных: this_is.an_example$
  5. Фаззинг метасимволов регулярных выражений: замена всех возможных метасимволов регулярных выражений: .^$*+-?()[]{}\|
  6. Фаззинг преобразования регистра (upper/lower): замена всех возможных байтов в соответствии с таблицей регистра
  7. Фаззинг усечения байтов: замена всех возможных байтов в соответствии с таблицей усечения

Кодировка

  1. Формат URL-кодирования для использования с application/x-www-form-urlencoded или параметрами запроса/тела: %22this_is.an_example
  2. Формат Unicode для использования с application/json: \u0022this_is.an_example
  3. Сырой формат для использования с multipart/form-data: "this_is.an_example
  4. Двойной URL-кодированный формат

Диапазон

Укажите диапазон байтов для фаззинга: -r 1-127. Это исключит буквенно-цифровые символы, если не указана опция -an.

Размер

Укажите размер фаззинга для режимов 1, 2 и 4. По умолчанию происходит фаззинг всех возможных значений для одного байта. Увеличение размера потребует больше ресурсов и сгенерирует гораздо больше входных данных, но может привести к обнаружению новых обходов.

Файл

Входные данные могут быть предоставлены как позиционный аргумент, через stdin или из файла с помощью опции -f.

Буквенно-цифровые символы

По умолчанию буквенно-цифровые символы исключаются из генерации выходных данных, так как они обычно неинтересны с точки зрения ответов. Вы можете разрешить их с помощью опции -an.

Максимальное количество нормализаций

Не все библиотеки нормализации ведут себя одинаково. По умолчанию для каждого индекса входных данных генерируется три варианта нормализации, что обычно достаточно. Используйте опцию -mn для увеличения.

Таблицы

Используйте опцию -nt для отображения таблицы нормализации, -ct для таблицы регистра и -tt для таблицы усечения. Вы также можете использовать опцию --html для вывода таблиц в формате HTML.

root@kitploit:~
$ recollapse -nt --html > normalization_table.html
$ recollapse -tt --html > truncation_table.html
$ recollapse -ct --html > case_table.html

Примеры

Использование Recollapse как инструмента командной строки:

root@kitploit:~
$ recollapse -e 1 -m 1,2,4 -r 10-11 https://legit.example.com
%0ahttps://legit.example.com
%0bhttps://legit.example.com
https%0a://legit.example.com
https%0b://legit.example.com
...

$ echo "[email protected]" | recollapse 
%[email protected]
%[email protected]
...

$ echo "<svg/onload=alert(1)>" | recollapse | ffuf -w - -u "https://example.com/?param=FUZZ" -mc 200,403,500

Использование Recollapse как библиотеки:

root@kitploit:~
from recollapse import Recollapse

recollapse = Recollapse(modes=Recollapse.DEFAULT_MODES,
                        encoding=Recollapse.ENCODING_RAW)
variants = recollapse.generate("<script")
for variant in variants:
    print(variant)

Ресурсы

Эта техника была впервые представлена на BSidesLisbon 2022

Запись в блоге: https://0xacb.com/2022/11/21/recollapse/

Слайды:

  • nahamcon_2022_eu_till_recollapse.pdf
  • bsideslisbon_2022_till_recollapse.pdf

Видео:

  • NahamCon 2022 EU
  • BSidesLisbon 2022

Таблицы:

  • Таблица нормализации: https://0xacb.com/normalization_table
  • Таблица регистра: https://0xacb.com/case_table
  • Таблица усечения: https://0xacb.com/truncation_table

Благодарности

  • @regala_
  • @0xz3z4d45
  • @jllis
  • @samwcyo
  • @yassineaboukir
  • @0xteknogeek
  • @vgpinho
  • @ryancbarnett
  • BBAC

и

  • команда @ethiack
  • команда @0xdisturbance
  • команда @hacker0x01

⚠ Юридическое предупреждение ⚠

Этот проект создан исключительно для образовательных и этических целей тестирования. Использование данного инструмента для атак на цели без предварительного взаимного согласия является незаконным. Разработчики не несут ответственности за неправомерное использование или ущерб, причиненный этим инструментом.

Скачать инструмент