Codeby
36.4K subscribers
1.66K photos
92 videos
12 files
7.53K links
Блог сообщества Кодебай

Чат: @codeby_one
Форум: codeby.net
Обучение: codeby.school
Пентест: codeby.one
CTF: hackerlab.pro

VK: vk.com/codeby
YT: clck.ru/XG99c

Сотрудничество: @KinWiz

Реклама: @Savchenkova_Valentina
Download Telegram
💥 REcollapse

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


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

Установить можно через python или docker следующими командами.
git clone https://github.com/0xacb/recollapse.git
cd recollapse
#Python 3
python3 setup.py install
#Docker
docker build -t recollapse .


⁉️ Объяснение параметров
Режимы работы
Предположим, что входная строка — this_is.an_example.
⏺️Вставка полезной нагрузки в начало строки: $this_is.an_example
⏺️Вставка байтов до/после символов-разделителей: this$_$is$.$an$_$example
⏺️Подстановка всех возможных байтов в соответствии с таблицей нормализаций.
⏺️Добавление нагрузки в конец строки: this_is.an_example$
⏺️Замена допустимых символов на регулярные метасимволы: .^$*+-?()[]{}\|
⏺️Замена символов на их нижний/верхний регистр или эквиваленты по таблице соответствий.
⏺️Замена символов на байты, вызывающие усечение строки при обработке.

Кодирование
⏺️URL-кодирование (используется в application/x-www-form-urlencoded, параметрах GET/POST): %22this_is.an_example
⏺️Unicode-кодировка (используется в application/json): \u0022this_is.an_example
⏺️Raw-формат (используется в multipart/form-data): "this_is.an_example
⏺️Двойное URL-кодирование: %2522this_is.an_example

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

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

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


👨‍💻 Примеры использования
recollapse -e 1 -m 1,2,4 -r 10-11 https://legit.example.com

echo "a@b.com" | recollapse 

echo "<svg/onload=alert(1)>" | recollapse | ffuf -w - -u "https://example.com/?param=FUZZ" -mc 200,403,500
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍6🔥6