Введение
В этой лабораторной работе вы научитесь эффективно использовать Gobuster, популярный инструмент для перебора каталогов и файлов, для исключения определенных кодов состояния HTTP из результатов сканирования. При выполнении веб-перечисления вы часто сталкиваетесь с множеством ответов "Не найдено" (404) или другими нерелевантными ответами, которые загромождают вывод. Фильтруя их, вы можете сосредоточиться на более значимых результатах, делая ваши разведывательные усилия более эффективными и целенаправленными. Эта лабораторная работа проведет вас через идентификацию "шумных" кодов состояния, выполнение базового сканирования, а затем применение фильтров исключения с использованием флага -b в Gobuster.
Определение "шумных" кодов состояния для игнорирования (например, 404)
На этом этапе вы поймете, почему важно определять и исключать определенные коды состояния HTTP во время сканирования Gobuster. Когда Gobuster пытается получить доступ к несуществующим путям, веб-сервер обычно отвечает кодом состояния "404 Not Found". Эти ответы 404 могут переполнить вывод вашего сканирования, затрудняя обнаружение реальных результатов. Другие коды состояния, такие как перенаправления 3xx или ошибки сервера 5xx, также могут считаться "шумными" в зависимости от ваших конкретных целей разведки.
Чтобы проиллюстрировать это, мы сначала выполним простую команду curl против нашего локального веб-сервера, чтобы увидеть, как он отвечает на несуществующий путь.
Откройте терминал и выполните следующую команду:
curl -I http://localhost:8000/nonexistent_page
Вы должны увидеть вывод, похожий на этот, указывающий на статус 404 Not Found:
HTTP/1.0 404 Not Found
Server: SimpleHTTP/0.6
Date: ...
Content-type: text/html
Content-Length: ...
Этот 404 Not Found является распространенным "шумным" ответом. На следующих шагах вы узнаете, как указать Gobuster игнорировать такие ответы.
Выполнение сканирования без фильтрации
На этом этапе вы выполните базовое сканирование Gobuster без какой-либо фильтрации кодов состояния. Это послужит отправной точкой для демонстрации того, сколько "шума" (например, ответов 404) может быть сгенерировано в выводе. Вы будете использовать режим dir в Gobuster для перечисления каталогов и файлов на нашем локальном веб-сервере.
Выполните следующую команду в вашем терминале:
gobuster dir -u http://localhost:8000 -w ~/project/wordlist.txt
Разберем команду:
gobuster dir: Указывает, что мы хотим использовать режим перечисления каталогов/файлов.-u http://localhost:8000: Устанавливает целевой URL на наш локальный веб-сервер.-w ~/project/wordlist.txt: Указывает файл словаря для использования при переборе.
Наблюдайте за выводом. Скорее всего, вы увидите множество записей с пометкой (Status: 404), указывающих на то, что Gobuster пытался получить доступ к путям, которые не существуют на сервере.
...
/nonexistent_page (Status: 404)
/admin (Status: 404)
/test (Status: 404)
/existing_dir (Status: 200)
/another_file.txt (Status: 200)
/redirect_me (Status: 302)
/forbidden_area (Status: 403)
/server_error (Status: 500)
...
Как вы можете видеть, вывод загроможден ответами 404, что затрудняет идентификацию реально существующих ресурсов.
Использование флага -b для исключения 404 Not Found
На этом этапе вы узнаете, как использовать флаг -b (или --exclude-length) в Gobuster для исключения определенных кодов состояния HTTP из результатов. Это крайне важно для фильтрации нерелевантных ответов и сосредоточения на том, что действительно имеет значение. Мы специально исключим код состояния 404 Not Found, который является наиболее распространенным "шумным" ответом.
Флаг -b принимает список кодов состояния через запятую для исключения.
Выполните следующую команду в вашем терминале, чтобы запустить сканирование Gobuster, исключив ответы 404:
gobuster dir -u http://localhost:8000 -w ~/project/wordlist.txt -b 404
Рассмотрим новый флаг:
-b 404: Указывает Gobuster исключить любые результаты, возвращающие код состояния HTTP 404.
Внимательно наблюдайте за выводом. Вы должны заметить, что все записи с (Status: 404) теперь отсутствуют, что приводит к гораздо более чистому и сфокусированному списку результатов.
...
/existing_dir (Status: 200)
/another_file.txt (Status: 200)
/redirect_me (Status: 302)
/forbidden_area (Status: 403)
/server_error (Status: 500)
...
Это значительно улучшает читаемость и полезность результатов вашего сканирования.
Выполнение сканирования и наблюдение за более чистым выводом
На этом этапе вы повторно запустите сканирование Gobuster с флагом -b 404 и внимательно изучите вывод, чтобы убедиться, что ответы 404 действительно исключены. Это укрепит ваше понимание того, как работает флаг исключения и как он влияет на результаты сканирования.
Снова выполните команду, чтобы увидеть отфильтрованный вывод:
gobuster dir -u http://localhost:8000 -w ~/project/wordlist.txt -b 404
По мере выполнения сканирования вы увидите только те записи, которые вернули коды состояния, отличные от 404. Это демонстрирует эффективность флага -b в снижении "шума".
Пример ожидаемого более чистого вывода:
...
/existing_dir (Status: 200)
/another_file.txt (Status: 200)
/redirect_me (Status: 302)
/forbidden_area (Status: 403)
/server_error (Status: 500)
...
Обратите внимание, как записи nonexistent_page, admin и test (которые вернули 404) больше не присутствуют в выводе. Это значительно упрощает идентификацию действительных ресурсов.
Комбинирование -s и -b для точной фильтрации
На этом заключительном этапе вы узнаете, как комбинировать флаги -s (включить коды состояния) и -b (исключить коды состояния) для еще более точной фильтрации. В то время как -b отлично подходит для удаления "шума", иногда вы хотите видеть только определенные типы ответов, такие как успешные (200 OK) или перенаправления (3xx).
Флаг -s позволяет указать список кодов состояния через запятую, которые нужно включить в результаты. Когда используются оба флага, -s и -b, Gobuster сначала применит фильтр -s, а затем из оставшихся результатов применит фильтр -b.
Предположим, вы хотите видеть только ответы 200 OK и 302 Found, при этом явно исключая 404 Not Found.
Выполните следующую команду:
gobuster dir -u http://localhost:8000 -w ~/project/wordlist.txt -s 200,302 -b 404
Вот разбивка:
-s 200,302: Указывает Gobuster только показывать результаты с кодами состояния 200 или 302.-b 404: Указывает Gobuster исключить результаты с кодом состояния 404. (Хотя в данном конкретном случае 404 уже был бы исключен флагом-s, это демонстрирует комбинацию.)
Наблюдайте за выводом. Теперь вы должны видеть только записи с Status: 200 и Status: 302.
...
/existing_dir (Status: 200)
/another_file.txt (Status: 200)
/redirect_me (Status: 302)
...
Эта мощная комбинация позволяет точно настраивать сканирование Gobuster для получения только самой релевантной информации, значительно повышая вашу эффективность в веб-разведке.
Резюме
В этой лабораторной работе вы успешно научились исключать определенные коды состояния HTTP из результатов сканирования Gobuster. Вы начали с понимания того, почему фильтрация необходима, особенно для распространенных "шумных" ответов, таких как 404 Not Found. Затем вы выполнили базовое сканирование, чтобы наблюдать за неотфильтрованным выводом. Основная часть этой лабораторной работы заключалась в использовании флага -b для исключения нежелательных кодов состояния, что привело к гораздо более чистому и сфокусированному набору результатов. Наконец, вы изучили, как комбинировать флаги -s (включить) и -b (исключить) для еще более точного контроля над сканированием Gobuster. Этот навык бесценен для эффективной и целенаправленной веб-разведки.
