Katana

Katana, image #1

Katana - современный, высокопроизводительный веб-краулер и парсер, написанный на Go. Для успешной установки katana требуется Go 1.21+. Установить можно следующей командой:
CGO_ENABLED=1 go install github.com/projectdiscovery/katana/cmd/katana@latest

Поддерживает 2 режима работы:

Стандартный режим
сканирования использует стандартную библиотеку go http для обработки HTTP-запросов и ответов. Этот режим намного быстрее, так как не требует дополнительных ресурсов браузера. Однако он анализирует только "сырое" тело ответа — без выполнения JavaScript и без рендеринга DOM. Из-за этого он может пропустить URL или точки входа, которые появляются только после загрузки страницы в браузере или в результате асинхронных запросов.

Headless режим
перехватывает внутренние вызовы для обработки HTTP-запросов/ответов непосредственно в контексте браузера. Это даёт два преимущества:

  • Fingerprint клиента (TLS, User-Agent) полностью идентифицирует его как настоящий браузер.
  • Лучшее покрытие, поскольку эндпоинты обнаруживаются при анализе стандартного необработанного ответа, как и в предыдущем случае, а также при анализе ответа, отображаемого браузером с включенным JavaScript.

Headless сканирование не является обязательным и может быть включено с помощью -headless опции.

Использование
katana требует url или эндпоинт для сканирования и принимает один или несколько входных параметров. URL-адрес для ввода можно указать с помощью опции -u, а несколько значений можно указать через запятую. Аналогичным образом поддерживается ввод через файл с помощью опции -list, а также ввод через stdin.

При использовании режима headless могут понадобится следующие флаги:
-no-sandbox - полезен при запуске от имени пользователя root.
-no-incognito - полезен при использовании локального браузера.

Контроль области сканирования
-field-scope - самый удобный способ задать область видимости с помощью заранее заданного имени поля.

  • rdn — сканирование корневого домена и всех поддоменов (например, *example.com) (по умолчанию)
  • fqdn - сканирование в пределах заданного поддомена (например, www.example.com или api.example.com)
  • dn — сканирование по ключевому слову в доменном имени.
    katana -u https://tesla.com -fs dn

-crawl-scope - расширенное управление областью видимости с поддержкой regex.
katana -u https://tesla.com -cs login

-crawl-out-scope - определение целей, которые не нужно сканировать. Также с поддержкой regex.

Обход аутентификации
Включение пользовательских заголовков или файлов cookie в HTTP-запросы для доступа к защищенным ресурсам. Эти заголовки содержат информацию об аутентификации или авторизации, что позволяет сканировать защищенный контент/эндпоинты.
katana -u https://tesla.com -H 'Cookie: usrsess=AmljNrESo'

Управление сканированием
Возможность указать глубину для отслеживания URL-адресов при сканировании.
katana -u https://tesla.com -d 5

Возможность включить анализ файлов JavaScript и сканирование эндпоинтов, обнаруженных в файлах JavaScript, по умолчанию отключена.
katana -u https://tesla.com -jc

Возможность включить автоматическое заполнение формы для известных/неизвестных полей. Значения известных полей можно настроить по своему усмотрению, обновив файл конфигурации формы по адресу $HOME/.config/katana/form-config.yaml.
katana -u https://tesla.com -aff

234 views·2 shares