Всеобъемлющее руководство по ffuf

Всеобъемлющее руководство по FUFF

В этой статье мы узнаем, как мы можем использовать ffuf, что означает «Fuzz Faster U Fool», интересный инструмент веб-фаззинга с открытым исходным кодом. С момента его выпуска многие люди тяготели к ffuf, особенно в сценарии bug bounty. Итак, давайте погрузимся в процесс обучения.

Введение в ffuf

Многие люди тяготели к ffuf с момента его выпуска, особенно в сфере bug bounty. Хотя основная часть этого сдвига, возможно, связана с менталитетом стада, значительная часть группы сделала переход из-за темпа, универсальности и способности FFUF легко объединяться с внешними инструментами.

Установка

Это программа командной строки, которая запускается в терминале Linux или командной строке Windows. Обновление из исходного кода не сложнее компиляции из исходного кода, за исключением включения флага -u.

go get -u github.com/ffuf/ffuf

Поскольку мы используем Kali Linux, мы найдем ffuf в репозиториях apt, что позволит нам выполнить установку, выполнив простую команду.

apt install ffuf

Всеобъемлющее руководство по FUFF

После установки этого инструмента все, что нам нужно, чтобы получить его рабочие параметры и опции — это просто использовать [-h] параметр для опции справки.

ffuf -h

Всеобъемлющее руководство по FUFF

Параметры ввода

Это параметры, которые помогают нам предоставить необходимые данные для веб-фаззинга по URL-адресу с помощью мирового списка.

1. Простая атака

Для атаки по умолчанию нам нужно использовать параметры [-u] для целевого URL и [-w], чтобы загрузить список слов, как показано на изображении.

ffuf -u http://testphp.vulnweb.com/FUZZ/ -w dict.txt

После выполнения команды сосредоточимся на результатах.

  • Во-первых, мы заметили, что по умолчанию он работает по HTTP-методу GET.
  • Следующее — статус кода ответа [200, 204, 301, 302, 307, 401, 403, 405}; это также показывает прогресс нашей атаки. В конце работы мы получили свои результаты.

Всеобъемлющее руководство по FUFF

2. Списки Wordlists

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

Здесь мы предоставили два словаря: dict.txt как W1 и W2 как Dns.txt, и fuff будет читать оба словаря одновременно.

ffuf -u https://ignitetechnologies.in/W2/W1/ -w dict.txt:W1 -w dns_dict.txt:W2

Всеобъемлющее руководство по FUFF

3. Принебрежение комментариями к списку слов:

Как правило, список слов по умолчанию может содержать некоторые комментарии, которые могут повлиять на точность результатов. В этом случае мы можем использовать параметр [-ic], который может помочь нам избавиться от этого комментария. Иногда нам нужно больше сосредоточиться на атаке, а не на баннерах инструментов, для такой точности нам нужен параметр [-s], который имеет право удалить баннер инструмента.

ffuf -u http://testphp.vulnweb.com/FUZZ/ -w dict.txt

мы можем ясно видеть, что некоторые комментарии присутствуют в результате, когда мы запустили над командой, а после использования параметров [-s] и [-ic] в следующей команде, комментарии и баннер удаляются.

ffuf -u http://testphp.vulnweb.com/FUZZ/ -w dict.txt -ic -s

Всеобъемлющее руководство по FUFF

4. Расширения:

Мы можем искать конкретный файл расширения на веб-сервере с помощью параметра [-e], все, что нам нужно, просто указать файл расширения вместе с параметром [-e]. Чтобы получить эти результаты, нам просто нужно выполнить команду.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -e .php

Всеобъемлющее руководство по FUFF

5. Запрос | Request-Proto | Режим:

Burp Suite — это продвинутая платформа для мониторинга безопасности веб-приложений. Его различные инструменты действуют согласованно, помогая процессу тестирования в целом. Кластерная бомба — это функция, которая использует несколько наборов полезной нагрузки. Для каждого заданного местоположения существует свой пакет полезной нагрузки. Атака проходит через каждый пакет полезной нагрузки один за другим, проверяя все возможные варианты полезной нагрузки.

Есть различные параметры этого инструмента, которые помогают использовать наш сценарий. Параметр [-request], который может использовать наш запрос в атаке, параметр [-request-proto], с помощью которого мы можем определить наши параметры, опция [-mode] помогает нам определить режим атаки.

Прежде всего, мы используем случайные учетные данные на нашей целевой URL-странице и настраиваем прокси для захвата его запроса в режиме перехвата на Burpsuite.

Всеобъемлющее руководство по FUFF

Теперь на вкладке перехвата Burpsuite измените предоставленные учетные данные на HFUZZ и WFUZZ. Поместите HFUZZ перед uname и WFUZZ перед проходом. Затем скопируйте и вставьте этот запрос в текст и назовите по своему желанию. В нашем случае мы назвали это brute.txt.

Всеобъемлющее руководство по FUFF

Теперь переходим к основной атаке, где параметр [-request] содержит текстовый файл нашего запроса. [-request-proto] Помогите нам получить прототип http [-mode] Помогите нам создать атаку кластерной бомбы. Используемые в них списки слов (users.txt и pass.txt) состоят из SQL-инъекций. Следуя этой команде, начните атаку с использованием этих параметров.

ffuf -request brute.txt -request-proto http -mode clusterbomb -w users.txt:HFUZZ -w pass.txt:WFUZZ -mc 200

как мы видим по результатам нашей атаки, мы успешно обнаружили, что SQL-инъекции работают на эту конкретную цель.

Всеобъемлющее руководство по FUFF

Параметры соответствия

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

1. Соответствие HTTP-коду:

Чтобы понять этот параметр, нам нужно рассмотреть простую атаку, при которой мы можем увидеть, какие HTTP-коды появляются в наших результатах.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt

мы ясно видим, что он показывает HTTP-код 302 вместе с HTTP-кодом 200.

Всеобъемлющее руководство по FUFF

Если нужны только успешные результаты, такие как HTTP-код 200, нам просто нужно использовать параметр [-mc] вместе с нашим конкретным HTTP-кодом. Чтобы использовать этот параметр, просто следуйте команде.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -mc 200

Всеобъемлющее руководство по FUFF

2. Линии совпадений:

Подобно коду сопоставления, который мы обсуждали ранее, он дает нам результат для определенных строк в файле с помощью параметра [-ml]. Мы можем использовать этот параметр, указав нужные нам строки в файле.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -ml 15

Всеобъемлющее руководство по FUFF

3. Соответствие слов:

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

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -mw 53

Всеобъемлющее руководство по FUFF

4. Размер соответствия:

 Вышеуказанные функции соответствуют функции, и она может предоставить нам результат с размером файла. Мы можем использовать параметр [-ms] вместе с определенным количеством размеров, которое мы хотим видеть в нашем результате.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -ms 2929

Всеобъемлющее руководство по FUFF

Соответствие регулярному выражению:

Это последняя из всех функций сопоставления, доступных в этом инструменте. Мы собираемся провести фаззинг для LFI, сопоставив строку с последующим шаблоном «root: x» для данного словаря.

Мы используем URL-адрес, который может обеспечить эту функциональность, и с помощью параметра [-mr] мы определяем соответствующую строку «root: x».

Так выглядит наш специальный список слов.

Всеобъемлющее руководство по FUFF

Используя этот список слов, выполните следующую команду, чтобы использовать параметр [-mr] в сценарии атаки.

ffuf -u http://testphp.vulnweb.com/showimage.php?file=FUZZ -w dict2.txt -mr "root:x"

Здесь мы получили HTTP, чтобы ответить 200 для / etc / passwd для данного списка слов.

Всеобъемлющее руководство по FUFF

Параметры фильтра

Параметры фильтра полностью противоположны параметрам сопоставления. Мы можем использовать эти параметры, чтобы удалить нежелательное из нашего веб-фаззинга. Пример: HTTP-код, строки, слова, размер, регулярные выражения.

1. Код фильтра:

Параметру [-fc] нужен конкретный код состояния HTTP, который мы хотим удалить из результата.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -fc 302

Всеобъемлющее руководство по FUFF

2. Строки фильтра:

Параметр [-fl] имеет возможность удалить определенную длину из нашего результата, или мы можем отфильтровать его из условий нашей атаки.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -fl 26

Всеобъемлющее руководство по FUFF

3. Размер фильтра:

Параметр [-fs] имеет возможность отфильтровать указанный размер, описанный нами во время команды атаки.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -fs 2929

Всеобъемлющее руководство по FUFF

4. Фильтровать слова

Параметр [-fw] имеет возможность отфильтровывать количество слов из результатов, которые мы хотим удалить.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -fw 83

Всеобъемлющее руководство по FUFF

5. Фильтр регулярного выражения:

Параметром [-fr] мы можем удалить конкретное регулярное выражение. Здесь мы пытаемся исключить файл журнала из  результатов выхода.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -fr "log"

Всеобъемлющее руководство по FUFF

Общие настройки

Это общие параметры того инструмента, который вращается вокруг его работы над веб-фаззингом.

1. Пользовательская автокалибровка:

Мы знаем, что способность компьютера или машины автоматически калибровать себя называется автокалибровкой. Калибровка — это процесс предоставления измерительному прибору информации, необходимой для понимания контекста, в котором он будет использоваться. При сборе данных калибровка компьютера обеспечивает их точность.

Мы можем настроить эту функцию в соответствии с нашими потребностями с помощью параметра [-acc]. Что не может быть использовано без параметра [-ac] для его настройки.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -acc -ac -fl 26 -ac -fs 2929 -ac -fw 54

Всеобъемлющее руководство по FUFF

2. Цвет:

Иногда разделение цвета требует дополнительного внимания ко всем деталям, что дают результат. Этот параметр [-c] помогает создать цветоделение.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -c

Всеобъемлющее руководство по FUFF

3. Максимальное время выполнения задачи:

Если вы хотите проводить фаззинг в течение ограниченного времени, вы можете выбрать параметр [-maxtime]. Следуйте команде, чтобы указать временной интервал.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -maxtime 5

Всеобъемлющее руководство по FUFF

4, Максимальное время работы:

С помощью параметра [-maxtime-job] мы можем установить ограничение по времени для конкретной работы. Используя эту команду, мы пытаемся ограничить время выполнения задания или запроса.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -maxtime-job 2

Всеобъемлющее руководство по FUFF

5. Задержка:

Мы можем создать определенную задержку в каждом запросе, предлагаемом атакой. Благодаря этой функции у запроса есть лучшие возможности для получения лучших результатов. Параметр [-p] помогает нам добиться задержки в этих запросах.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -p 1

6. Частота запросов:

Мы можем создать отдельную частоту запросов для каждой нашей атаки с помощью параметра [-rate]. С помощью этого параметра мы создаем наш запрос в секунду в соответствии с желаемой атакой.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -rate 500

7. Функции ошибок:

Есть три параметра, которые поддерживают функцию ошибки. Первый параметр [-se], что является ложной ошибкой. В нем говорится, что следующий запрос является подлинным или нет. Второй параметр [-sf], он остановит нашу атаку, если более 95% запросов возникли как ошибка. Третий и последний параметр — [-sa], который представляет собой комбинацию обоих параметров ошибки.

В нашем сценарии мы используем параметр [-se], который остановит нашу атаку, когда наш запрос не настоящий.

ffuf -u http://ignitetechnologies.in/W2/W1/ -w dict.txt:W1 -w dns_dict.txt:W2 -se

8. Подробный режим:

Как мы все знаем, подробный режим — это функция, используемая во многих операционных системах и языках программирования, которая предоставляет дополнительную информацию о том, что делает компьютер, и какие драйверы и приложения загружаются при инициализации. В программировании он производит точный вывод для целей отладки, что упрощает отладку программы. Параметр, называется [-v] параметром.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -v

9. Потоки:

Параметр [-t] используется для ускорения или замедления процесса. По умолчанию он установлен на 40. Если мы хотим ускорить процесс, нам нужно увеличить его количество, и уменьшить, чтобы замедлить процесс.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -t 1000

Параметры вывода

Мы сохраняем производительность наших атак для целей учета, улучшения читаемости и потенциальных ссылок. Мы используем параметр [-o]для сохранения нашего вывода, но нам нужно указать его формат вместе с параметром [-of].

1. Формат вывода в HTML:

Мы используем параметр [-of] и это определение в формате HTML. Используя команду, мы можем создать наш отчет в формате html.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -o file.html -of html

Теперь, после завершения этой атаки, нам нужно проверить, соответствует ли наш выходной файл этой отметке. Как видим, наш файл успешно создан.

2. Формат вывода в CSV:

Точно так же нам просто нужно форматировать csv вместе с параметром [-of]. Где csv — это значения, разделенные запятыми, и этот файл позволяет хранить данные в табличном формате.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -o file.csv -of csv

Теперь, после завершения этой атаки, нам нужно проверить, соответствует ли наш выходной файл этой отметке. Как видим, наш файл успешно создан.

3. Все выходные форматы:

Точно так же, если мы хотим сразу весь выходной формат, просто используйте параметр [-of all]. Например, json, ejson, html, md, csv, ecsv. Следуйте этой команде, чтобы сгенерировать сразу все отчеты.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -o output/file -of all

Теперь, после завершения этой атаки, нам нужно проверить, соответствуют ли наши выходные файлы этой отметке. Как мы видим, все наши файлы успешно созданы.

Параметры HTTP

Параметры перемещаются по параметрам HTTP, иногда для запуска веб-фаззинга требовались данные, такие как HTTP-запрос, Cookie, HTTP-заголовок и т. д.

1. Тайм-аут:

Тайм-аут действует как крайний срок для события. Справка по параметру [-timeout] позволяет легко установить эту функцию, выполните эту команду, чтобы запустить этот параметр.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -timeout 5

2. Заголовок хоста:

Если мы хотим выполнить фаззинг на субдомене, мы можем использовать параметр [-H] вместе со списком слов доменного имени, как указано ниже в команде.

ffuf -u https://google.com -w dns_dict.txt -mc 200 -H "HOST: FUZZ.google.com"

3. Рекурсия:

Как мы все знаем, рекурсия — это механизм самоподобного повторения объектов. Если программа требует от вас доступа к функции внутри другой функции, это называется рекурсивным вызовом функции. Используя параметр [-recursion], мы можем добиться этой функциональности в наших атаках.

ffuf -u "http://testphp.vulnweb.com/FUZZ/" -w dict.txt -recursion

3. Атака с использованием файлов cookie:

Иногда веб-фаззинг не показывает результат на аутентифицированном сайте без аутентификации. Существует параметр [-b], с помощью которого мы можем достичь вашей цели, предоставив файл cookie сеанса.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -b "PHPSESSID:"7aaaa6d88edcf7cd2ea4e3853ebb8bde""

3. Replay-Proxy:

Как вы, возможно, знаете, существуют ограничения скорости при использовании функции Intruder в бесплатной версии пакета Burp (Community Edition). Атака нарушителя была сильно замедлена, с каждым приказом атака еще больше замедлялась.

В нашем случае мы используем прокси-сервер Burp для получения результатов для оценки в нем. Во-первых, мы должны установить прокси-сервер localhost на порт 8080.

Теперь используйте параметр [-replay-proxy], который помогает нам получить прокси-сервер локального хоста, который мы установили на предыдущем шаге на порт 8080 вместе с нашей атакой.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -replay-proxy http://127.0.0.1:8080 -v -mc 200

Эта атака покажет наши результаты на двух платформах. Первая платформа на терминале kali, а вторая на вкладке истории HTTP пакета Burp. С помощью этих различных методов мы можем лучше понять нашу цель и результаты нашей атаки.

Заключение

Ffuf часто сравнивают с такими инструментами, как dirb или dirbuster, что, хотя и в определенной степени, не является разумной аналогией. Хотя FFUF можно использовать для перебора файлов, его истинная сила заключается в его простоте, и лучшим сравнительным инструментом для FFUF будет что-нибудь вроде Burp Suite Intruder или Turbo Intruder.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Click to rate this post!
[Total: 0 Average: 0]

Leave a reply:

Your email address will not be published.