В этой статье мы узнаем о 5 удивительных инструментах фаззинга, которые могут быть использованы для целей фаззинга пентестерами веб-приложений.
Итак, давайте узнаем, как использовать некоторые удивительные инструменты для автоматизации процесса фаззинга.
Как работает фаззинг?
Фаззинг – это автоматизированный процесс, который обеспечивает ввод данных в веб-приложение, чтобы выяснить, приведет ли это к успешным или странным результатам.
Некоторые инструменты для фаззинга используют случайные символы, строки, а некоторые – списки слов.
Пентестеры веб-приложений в основном используют свои лучшие пользовательские списки слов для фаззинга своих целей.
На рынке доступны различные инструменты для фаззинга, поэтому вам придется выбирать те, которые вам нужны, исходя из ваших требований.
Различные типы фаззинга
- Фаззинг приложений: Application Fuzzing- важнейшая часть этой статьи, этот фаззинг в основном выполняется на десктопных приложениях, урлах, формах, RPC-запросах. Списки слов, строки и случайные символы используются для отправки запросов в приложение и ожидания их ответов.
- Фаззинг протоколов: Protocol Fuzzzer посылает поддельные пакеты целевому приложению и действует как прокси, изменяя запросы на лету и передавая их.
- Фаззинг форматов файла: FileFormat fuzzing относительно прост: вы предоставляете инструменту Fileformat Fuzzing образец легитимного файла приложения. После этого фаззер мутирует образец и открывает его в целевом приложении. Как только произошел сбой для любого образца, данные будут сохранены для просмотра. Поскольку произошел сбой, если вы можете контролировать поток выполнения этого сбоя, вы, несомненно, будете иметь некоторый контроль и, возможно, сможете взять приложение под контроль, если вам это удастся.
Шаги физзинга веб-приложения
- Определите точки входа данных: Определите точки входа данных в веб-приложение, т.е. это могут быть параметры, директории и даже скрипты.
- Выберите хороший словарь: Хороший вордлист может творить чудеса в фаззинге, в интернете есть такие словари для каждой цели. Я бы рекомендовал использовать словаври Seclists, если вы занимаетесь фаззингом веб-приложений. Выберите нужный вам вордлист из Seclists и загрузите его.
- Fuzz – Загрузите инструмент фаззинга в соответствии с вашими предпочтениями и предоставьте ему точки ввода данных и вордлисты.
1. Ffuf
Ffuf aka Fuzz Fast You Fool – инструмент с открытым исходным кодом, написанный на языке Go, является одним из лучших инструментов для фаззинга, доступных на рынке, благодаря своей быстроте, гибкости и эффективности.
Его постоянство в новых обновлениях всегда на высшем уровне и в основном используется пентестерами и охотниками за головами во всем мире.
Рекурсивные возможности Ffuf и подбор регулярных выражений – одна из наиболее часто используемых функций среди тестеров проникновения в Интернет.
1.1 Установка Ffuf
Ffuf может быть установлен на Linux OS следующей командой :
git clone https://github.com/ffuf/ffuf cd ffuf go get go build
На Mac OS:
brew install ffuf
sudo apt install ffuf
1.2 Использование Ffuf
Основная команда для проверки веб-сайта с использованием вашего словаря:
ffuf -c -w /path/of/wordlist -u http://checkinglogs.tk.s3-website-us-east-1.amazonaws.com/FUZZ
Фаззинг при подборе ответов
ffuf -c -w /path/of/wordlist -u http://checkinglogs.tk.s3-website-us-east-1.amazonaws.com/FUZZ -mc 200,401,402,403
С включенной рекурсией
ffuf -c -w /path/of/wordlist -u http://checkinglogs.tk.s3-website-us-east-1.amazonaws.com/FUZZ -recursion
Расширения, которые вы хотите
ffuf -c -w /path/of/wordlist -u http://checkinglogs.tk.s3-website-us.east1.amazonaws.com/FUZZ -e .html
2. Dirb
Старый добрый Dirb – это инструмент командной строки, используемый для проведения словарных атак на веб-сервер и поиска существующих файлов или каталогов путем анализа ответов.
Dirb предварительно загружен набором словарей для простоты использования, но вы всегда можете использовать свои собственные словари для достижения лучших результатов.
Вы можете генерировать свой собственный словарь с помощью dirb-gendict, а также создавать словарь из входного HTML-файла.
2.1 Установка Dirb
На Mac OS:
wget https://downloads.sourceforge.net/project/dirb/dirb/2.22/dirb222.tar.gz tar -xvf dirb222.tar.gz rm dirb222.tar.gz brew install autoconf chmod -R 755 dirb222 cd dirb222 ./configure make make install
На Ubuntu:
sudo apt install dirb
2.2 Использование Dirb
Основная команда для проверки веб-сайта с использованием вашего словаря:
dirb http://checkinglogs.tk.s3-website-us-east-1.amazonaws.com /path/of/wordlist
Тихим режим, т.е. вы не увидите никакого нежелательного вывода:
dirb http://checkinglogs.tk.s3-website-us-east-1.amazonaws.com -S
С включенной интерактивной рекурсией:
dirb http://checkinglogs.tk.s3-website-us-east-1.amazonaws.com/ /path/of/wordlist -R
С любыми расширениями по вашему желанию:
dirb http://checkinglogs.tk.s3-website-us-east-1.amazonaws.com /path/of/wordlist -X .html
3. GoBuster
Ранее уже был рассмотрен:
👨🦳 Сканирование сайтов на наличие интересных каталогов и файлов с помощью Gobuster
4. WFuzz
WFuzz – инструмент командной строки на базе Python – еще один инструмент, который необходимо знать, поскольку он был специально создан для оценки веб-приложений, а принцип его работы основан на очень простой концепции, т.е. он заменяет любую ссылку на ключевое слово значением заданной полезной нагрузки.
К нему также прилагаются подключаемые модули, поэтому вы можете использовать его для создания полезной нагрузки, кодирования или декодирования текста и многого другого.
Вы также можете создавать свои собственные плагины и использовать их по своему усмотрению.
4.1 Установка WFuzz
На Mac OS:
pip install wfuzz
На Ubuntu/Kali
sudo apt-get install wfuzz
Дополнительно: Выполните следующие действия, если вы столкнулись с этой ошибкой после выполнения Wfuzz : UserWarning:Pycurl is not compiled against Openssl. Wfuzz might not work correctly when fuzzing SSL sites. Check Wfuzz’s documentation for more information”.
sudo apt --purge remove python3-pycurl sudo apt install libcurl4-openssl-dev libssl-dev sudo pip3 install pycurl wfuzz
4.2 Использование Wfuzz
Базовая команда для проверки веб-сайта с использованием словаря путем скрытия ответов 404.
wfuzz --hc 404 -w /path/of/wordlist http://checkinglogs.tk.s3-website-us-east-1.amazonaws.com/FUZZ
брутфорс:
wfuzz -c -z file,users.txt -z file,pass.txt — sc 200 http://www.site.com/log.asp?user=FUZZ&pass=FUZ2Z
Тестирование открытого редиректа:
wfuzz -w /path/of/wordlist https://www.site.com?redirect=FUZZ
Wfuzz – это продвинутый инструмент фаззинга, поэтому если вы хотите найти XSS, LFI и другие уязвимости с помощью Wfuzz, вы всегда можете ознакомиться с его документацией по адресу https://wfuzz.readthedocs.io/en/latest/user/advanced.html.
5. Dirsearch
Ранее уже был рассмотрен:
👨🦳 Сканирование сайтов на наличие интересных каталогов и файлов с помощью Gobuster
Заключение
В этой статье мы рассмотрели 5 инструментов фаззинга, используемых для проверки веб-приложений.
Все инструменты, приведенные в этой статье, очень важны для проверки веб-приложений, и я бы посоветовал использовать как минимум два инструмента в сочетании для проверки веб-приложений.
Если вы столкнулись с проблемами при выполнении какой-либо из команд, пожалуйста, сообщите нам об этом в комментариях ниже.
¯\_(ツ)_/¯ Примечание: Информация для исследования, обучения или проведения аудита. Применение в корыстных целях карается законодательством РФ.