
Рекурсивно обходить веб-страницы для обнаружения всех URL-адресов путем перехода по ссылкам, анализа sitemap и файлов robots.txt. Идеально подходит для разведки безопасности и обнаружения контента.
xcrawl3r — это утилита командной строки, предназначенная для рекурсивного обхода веб-страниц с целью сбора URL-адресов. Она активно просматривает сайты, переходя по ссылкам, встроенным в веб-страницы, и анализируя файлы (включая карты сайта и robots.txt), чтобы обнаружить все возможные URL.
В отличие от xurlfind3r, который не взаимодействует напрямую с целью, xcrawl3r напрямую взаимодействует с целью, обходя её страницы в реальном времени. Такой активный подход позволяет находить URL, которые могут быть скрыты или не проиндексированы, предоставляя полную картину навигационной структуры и распределения контента веб-сайта. Это делает xcrawl3r мощным инструментом для специалистов по безопасности, IT-профессионалов и всех, кто хочет получить представление о URL-адресах, связанных с веб-сайтами.
robots.txt)stdin и stdout для простой интеграции в автоматизированные рабочие процессыПосетите страницу релизов и найдите подходящий архив для вашей операционной системы и архитектуры. Скачайте архив через браузер или скопируйте его URL и загрузите с помощью wget или curl:
...с помощью wget:
wget https://github.com/hueristiq/xcrawl3r/releases/download/v<version>/xcrawl3r-<version>-linux-amd64.tar.gz
...или с помощью curl:
curl -OL https://github.com/hueristiq/xcrawl3r/releases/download/v<version>/xcrawl3r-<version>-linux-amd64.tar.gz
...затем распакуйте бинарник:
tar xf xcrawl3r-<version>-linux-amd64.tar.gz
[!TIP] Описанные выше шаги (скачивание и распаковка) можно объединить в одну команду:
curl -sL https://github.com/hueristiq/xcrawl3r/releases/download/v<version>/xcrawl3r-<version>-linux-amd64.tar.gz | tar -xzv
[!NOTE] В системах Windows вы можете дважды щелкнуть zip-архив, чтобы извлечь исполняемый файл
xcrawl3r.
...переместите бинарник xcrawl3r в каталог, входящий в переменную PATH. Например, в GNU/Linux и macOS:
sudo mv xcrawl3r /usr/local/bin/
[!NOTE] Пользователи Windows могут воспользоваться инструкцией How to: Add Tool Locations to the PATH Environment Variable, чтобы добавить
xcrawl3rв свойPATH.
Перед установкой из исходного кода убедитесь, что Go установлен в вашей системе. Вы можете установить Go, следуя официальным инструкциям для вашей операционной системы. Предположим, что Go уже установлен.
go install ...go install -v github.com/hueristiq/xcrawl3r/cmd/xcrawl3r@latest
go build ... (разработочная версия)Клонируйте репозиторий
git clone https://github.com/hueristiq/xcrawl3r.git
Соберите утилиту
cd xcrawl3r/cmd/xcrawl3r && \
go build .
Переместите бинарник xcrawl3r в каталог, входящий в переменную PATH. Например, в GNU/Linux и macOS:
sudo mv xcrawl3r /usr/local/bin/
Пользователи Windows могут воспользоваться инструкцией How to: Add Tool Locations to the PATH Environment Variable, чтобы добавить xcrawl3r в свой PATH.
[!CAUTION] Хотя разработочная версия позволяет взглянуть на новейшие возможности
xcrawl3rдо их официального релиза, помните, что в ней могут быть ошибки. Официально выпущенные версии, как правило, более стабильны.
Чтобы установить xcrawl3r через Docker:
Загрузите образ Docker:
docker pull hueristiq/xcrawl3r:latest
Запустите xcrawl3r, используя образ:
docker run --rm hueristiq/xcrawl3r:latest -h
xcrawl3r будет работать сразу после установки. Однако вы можете настроить некоторые параметры в файле конфигурации, расположенном по пути $HOME/.config/xcrawl3r/config.yaml, который создаётся при первом запуске, или задать их в виде переменных окружения.
Пример переменных окружения:
XCRAWL3R_REQUEST_TIMEOUT=10
Чтобы начать использовать xcrawl3r, откройте терминал и выполните следующую команду для просмотра списка опций:
xcrawl3r -h
Вот как выглядит справочное сообщение:
_ _____
__ _____ _ __ __ ___ _| |___ / _ __
\ \/ / __| '__/ _` \ \ /\ / / | |_ \| '__|
> < (__| | | (_| |\ V V /| |___) | |
/_/\_\___|_| \__,_| \_/\_/ |_|____/|_|
v1.2.0
USAGE:
xcrawl3r [OPTIONS]
CONFIGURATION:
-c, --configuration string (default: $HOME/.config/xcrawl3r/config.yaml)
INPUT:
-u, --url string[] target URL
-l, --list string target URLs file path
For multiple URLs, use comma(,) separated value with `--url`,
specify multiple `--url`, load from file with `--list` or load from stdin.
SCOPE:
-d, --domain string[] match domain(s) URLs
For multiple domains, use comma(,) separated value with `--domain`
or specify multiple `--domain`.
--include-subdomains bool with domain(s), match subdomains' URLs
REQUEST:
--delay int delay between each request in seconds
-H, --header string[] header to include in 'header:value' format
For multiple headers, use comma(,) separated value with `--header`
or specify multiple `--header`.
--timeout int time to wait for request in seconds (default: 10)
PROXY:
-p, --proxy string[] Proxy (e.g: http://127.0.0.1:8080)
For multiple proxies use comma(,) separated value with `--proxy`
or specify multiple `--proxy`.
OPTIMIZATION:
--depth int maximum depth to crawl, `0` for infinite (default: 1)
-C, --concurrency int number of concurrent inputs to process (default: 5)
-P, --parallelism int number of concurrent fetchers to use (default: 5)
DEBUG:
--debug bool enable debug mode
OUTPUT:
--jsonl bool output in JSONL(ines)
-o, --output string output write file path
-m, --monochrome bool stdout in monochrome
-s, --silent bool stdout in silent mode
-v, --verbose bool stdout in verbose mode
Мы приветствуем и поощряем вклад! Не стесняйтесь отправлять Pull Request'ы или сообщать об ошибках. Для получения дополнительной информации ознакомьтесь с руководством по участию.
Большое спасибо всем участникам за вашу постоянную поддержку!
Этот пакет распространяется под лицензией MIT. Вы можете свободно использовать, изменять и распространять его при условии соблюдения условий лицензии. Полный текст лицензии находится в репозитории — Полный текст лицензии MIT.