🤩 Краулер для разведки по веб приложениям — 12 июня 2026 г. в 07:00:01.946
🤩 Краулер для разведки по веб приложениям Обычный краулер видит сырой HTML и пропускает всё, что появляется уже в DOM. Katana от команды ProjectDiscovery решает эту задачу. Это краулер на Go, который собирает ссылки и эндпоинты, в том числе из JS, и умеет ходить по сайту через настоящий браузер. Katana принимает на вход один URL, список из файла или поток через stdin, обходит цель и отдаёт найденные эндпоинты в текст, файл или JSON. У него два режима работы: • Стандартный использует обычный HTTP клиент Go и работает быстро, но видит только сырой ответ. • Режим headless поднимает Chrome, выполняет JavaScript и находит эндпоинты, которые появляются после рендера или асинхронных запросов. Дополнительно инструмент парсит ссылки внутри JS файлов, умеет автоматически заполнять формы, контролирует область обхода через scope и regex, фильтрует вывод по расширениям и условиям. Есть встроенное определение технологий и обход с авторизацией через свои заголовки или куки. Как это работает Базовый запуск по одной цели: katana -u https://example.com Список целей из файла: katana -list urls.txt Поток через pipe, например из httpx: echo https://example.com | katana Режим headless с разбором JavaScript находит больше эндпоинтов на динамических сайтах: katana -u https://example.com -headless -jc Контроль области обхода. Флаг -fs dn держит краулер в пределах домена по ключевому слову: katana -u https://example.com -fs dn Вывод в JSON с записью в файл удобен для дальнейшей обработки в пайплайне: katana -u https://example.com -jsonl -o endpoints.jsonl Запускать Katana можно и как библиотеку Go. Создаёте структуру Options, передаёте те же параметры, что и в CLI, и вызываете метод Crawl. Колбэк OnResult получает каждый найденный результат: options := &types.Options{ MaxDepth: 3, FieldScope: "rdn", Concurrency: 10, Strategy: "depth-first", OnResult: func(result output.Result) { gologger.Info ().Msg(result.Request.URL) }, } crawlerOptions, _ := types.NewCrawlerOptions(options) crawler, _ := standard.New (crawlerOptions) crawler.Crawl("https://example.com ") Кому пригодится Katana пригодится пентестерам, специалистам по bug bounty и инженерам по безопасности для сбора поверхности атаки. Инструмент собирает пути, параметры и файлы, из которых потом строят словари и списки целей для других сканеров. Важно помнить, что краулер шлёт реальные запросы к цели. Запускайте его только по тем доменам, на тестирование которых у вас есть разрешение. Если работаете с разведкой по вебу и сидите на стеке ProjectDiscovery, Katana встаёт в пайплайн рядом с subfinder и httpx. Быстрый стандартный режим закрывает простые сайты, headless вытягивает динамику. ➡️ Репозиторий

