
Создайте свой собственный список слов для фаззинга
CWFF — это инструмент, который создает для вас специальный высококачественный список слов для фаззинга / обнаружения контента с максимально возможной скоростью, используя параллелизм, и он сильно вдохновлен @tomnomnom и его Who, What, Where, When, Wordlist #NahamCon2020.

CWFF [-h] [--threads] [--github] [--subdomains] [--recursive] [--js-libraries] [--connected-websites] [--juicy-files] [--use-filter-model] [-o] domain
positional arguments:
domain Целевой веб-сайт (конечно)
optional arguments:
-h, --help Показать это справочное сообщение и выйти
--threads Максимальное количество одновременных потоков (по умолчанию: 1000)
--github Собрать конечные точки из указанного репозитория GitHub (например: https://github.com/google/flax)
--subdomains Извлекать конечные точки также из поддоменов при поиске в Wayback Machine!
--recursive Обрабатывать извлеченные конечные точки рекурсивно (добавляет больше конечных точек, но иногда менее точно)!
--js-libraries Извлекать конечные точки также из JS-библиотек, а не только из написанного ими JS!
--connected-websites Включить конечные точки, извлеченные из связанных веб-сайтов
--juicy-files Включить конечные точки, извлеченные из "сочных" файлов, таких как sitemap.xml и robots.txt
--use-filter-model Фильтровать конечные точки результата с помощью файла filter_model
-o Каталог вывода для конечных точек и параметров. (По умолчанию: имя веб-сайта)
Итак, по сути он собирает конечные точки и параметры цели и её поддоменов, используя множество источников, о которых мы сейчас поговорим:
Многие инструменты проходят только по верхней странице Wayback, чтобы сэкономить время, но здесь мы проходим по всем записям за короткое время, но это также увеличивает время работы при использовании флага --subdomains.
<script>CWFF пытается отделить JS-библиотеки от JS-файлов, фактически написанных разработчиками веб-сайта, анализируя имена JS-файлов.
По умолчанию CWFF извлекает конечные точки только из JS-файлов, написанных разработчиками. Чтобы использовать JS-библиотеки (в основном бесполезно), активируйте флаг --js-libraries.
--juicy-files, он также извлечёт конечные точки из таких файлов, как Sitemap.xml и robots.txt (в будущем могут быть добавлены и другие)--github, он извлечёт пути из этого репозитория, используя GitHub API (ключ API не требуется).Чтобы было ясно: CWFF будет использовать только пути к файлам и каталогам, то есть не будет извлекать конечные точки из содержимого самих файлов!
--connected-websites CWFF использует API BuiltWith (требуется ключ, но он бесплатный) для извлечения связанных веб-сайтов с целью из их профиля связей, а затем извлекает конечные точки из исходного кода этих сайтов.Примечание: вы можете получить свой ключ API на этой странице и указать переменную в файле
API_keys.py.
После сбора конечных точек из всех этих источников, если вы использовали флаг --recursive, CWFF рекурсивно извлечёт части из собранных конечных точек.
parseq/javadoc/1.1.0/com превратится в следующие конечные точки:
parseq/javadoc/1.1.0/com
parseq/javadoc/1.1.0/
parseq/javadoc/
parseq/
javadoc/
1.1.0/
com
Примечание: все собранные конечные точки/параметры очищаются и сортируются без дубликатов для получения уникального результата.
Конечно, после всех этих источников и проделанной работы среди важных конечных точек будет много нежелательных/бесполезных, и здесь на помощь приходит фильтрация, чтобы сэкономить время и ресурсы.
В CWFF вы можете обнаружить и удалить нежелательные конечные точки тремя способами:
Все эти параметры фильтрации можно задать, установив переменные в файле filter_model.py, а затем использовать флаг --use-filter-model при запуске CWFF. Если вы не знаете, как задать эти переменные, посмотрите комментарии, которые я оставил в файле — это тот, который я чаще всего использую, и на скриншоте он уменьшил количество собранных конечных точек с 26177 до 3629.
Если вы забыли использовать фильтрацию при запуске CWFF, не волнуйтесь, я вас прикрою 😄
Вы можете использовать скрипт filter.py для фильтрации уже имеющихся конечных точек следующим образом, и он автоматически загрузит файл filter_model.py без необходимости повторного запуска CWFF:
python filter.py wordlist.txt output.txt
python3 -m pip install -r requirements.txt
python3 cwff.py --help
Если моя работа была для вас полезной, вы можете отблагодарить меня, купив мне кофе.
CWFF создан для помощи в тестировании на проникновение и не несёт ответственности за любое неправомерное использование или незаконные цели.
Копирование кода из этого инструмента или его использование в другом инструменте разрешено при условии указания источника :smile