Назад к обновлениям
New releaseSep 19, 2026

urx v0.11.0

Извлекает URL-адреса из архивов OSINT для аналитики безопасности

Поделиться
Urx Logo

Извлекает URL-адреса из OSINT-архивов для задач безопасности.

Urx — это инструмент командной строки, предназначенный для сбора URL-адресов из OSINT-архивов, таких как Wayback Machine и Common Crawl. Написанный на Rust ради эффективности, он использует асинхронную обработку для быстрого опроса нескольких источников данных. Этот инструмент упрощает процесс сбора информации об URL-адресах для указанного домена, предоставляя исчерпывающий набор данных, который можно использовать для различных целей, включая тестирование безопасности и анализ.

Возможности

  • Параллельное получение URL-адресов из нескольких источников (Wayback Machine, Common Crawl, OTX, Arquivo.pt)
  • Подключение любого другого CDX-индексного сервера — национальных веб-архивов, приватного pywb, OutbackCDX — с помощью --cdx-endpoint URL, без изменения кода
  • По умолчанию без ключей: Wayback, Common Crawl, OTX, Arquivo.pt и URLScan (анонимно) работают без API-ключа
  • Провайдер BeVigil: URL-адреса, извлечённые из распакованных Android-приложений — эндпоинты, которые не обходил ни один веб-архив
  • Ротация API-ключей для каждого провайдера с ключами (VirusTotal, URLScan, ZoomEye, GitHub, BeVigil) для обхода ограничений скорости
  • Аутентифицированное тестирование: -H, --cookie и --user-agent применяются к каждому запросу, который urx делает к цели (--check-status, --extract-links, --extract-js-endpoints, --expand-specs, а также пробы robots/sitemap) и намеренно никогда не отправляются в архив
  • Фильтрация результатов по расширениям файлов, подстрокам или полным регулярным выражениям (--match-regex / --filter-regex)
  • Предустановленные пресеты — как по семейству файлов ("no-images", "only-js"), так и по интересу с точки зрения безопасности ("only-secrets", "only-backup", "only-config", "only-api")
  • Фильтрация на стороне архива: код статуса, MIME-тип и диапазон дат передаются прямо в CDX-запрос, поэтому отфильтрованные захваты вообще не пересекают сеть
  • Клиентская фильтрация метаданных (--meta-*): фильтрация по дате первого/последнего захвата, записанному MIME-типу и записанному статусу единообразно для каждого провайдера, после сбора
  • Цели с ограничением по пути: urx example.com/shop передаёт область прямо в CDX-запрос (url=example.com/shop*), поэтому поддерево большого сайта стоит долю от всего индекса, а не отфильтровывается на стороне клиента
  • Файлы области действия баг-баунти (--scope-file): собственный список программы вида *.example.com / !admin.example.com, используемый дословно, повторяемый и объединяемый, при этом исключения всегда побеждают
  • Нормализация и дедупликация URL-адресов: сортировка параметров запроса, удаление завершающих слэшей, объединение семантически идентичных URL-адресов и схлопывание почти-дубликатов, отличающихся только идентификаторами, хешами или датами (--dedup-similar)
  • Поддержка нескольких форматов вывода: обычный текст, JSON, JSON Lines, CSV и wordlist — сегменты пути и имена параметров, из которых построена цель, без идентификаторов, хешей и дат
  • Представления параметров и фаззинга: --params (полная инвентаризация параметров цели), --params-by-endpoint (какой эндпоинт принимает что) и --fuzz-placeholder FUZZ (один шаблонный URL на каждую сигнатуру параметра, готовый для ffuf или dalfox)
  • Метаданные архивных захватов: first_seen, last_seen, mime, archive_status и digest возвращаются с каждым URL-адресом, о котором сообщил CDX-архив, без дополнительных сетевых затрат
  • Потоковый вывод (--stream): URL-адреса записываются по мере их сообщения каждым провайдером, поэтому конвейер начинает работать немедленно, а не ждёт самый медленный архив
  • Поддержка прямого ввода из файлов: чтение URL-адресов напрямую из WARC-файлов, сжатых файлов URLTeam и текстовых файлов
  • Вывод результатов в консоль или файл, либо потоковая передача через stdin для интеграции в конвейер
  • Тестирование URL-адресов:
    • Фильтрация и проверка URL-адресов на основе кодов статуса HTTP и шаблонов.
    • Извлечение дополнительных ссылок из собранных URL-адресов — якорей, скриптов, таблиц стилей, действий форм, iframe, изображений, медиаисточников, объектов, встраиваний и целей meta-refresh
    • Извлечение из архивных тел ответов собранных URL-адресов (--archive-body), поэтому страницы, которых больше не существует, всё равно отдают содержавшиеся в них ссылки — один запрос на каждое уникальное тело благодаря дедупликации по CDX-дайджесту
    • С --extract-js-endpoints извлекайте также из архивного JavaScript: бандл, названный по хешу сборки, отдаёт 404 сразу после переразвёртывания сайта, и архив — единственное место, где его API-поверхность всё ещё существует
    • Сохраняйте воспроизведённые тела (--archive-body-dir) как корпус для поиска того, что не ищет ни один извлекатель ссылок — комментариев разработчиков, встроенных учётных данных, внутренних имён хостов — без дополнительных запросов
    • Разворачивание спецификаций API (--expand-specs): документы OpenAPI 3.x, Swagger 2.0 и GraphQL introspection, в формате JSON или YAML, превращаются в каждый описанный ими маршрут — один запрос даёт всю документированную поверхность
    • Метаданные ответа: --check-status также записывает Location, Content-Length и Content-Type, а --check-title добавляет HTML-тег <title>
  • Обнаружение архивных robots.txt и sitemap.xml (--archived-discovery): каждая отдельная версия, которую хранит Wayback Machine, поэтому Disallow: от 2015 года всё ещё называет пути, о которых сайт с тех пор перестал упоминать
  • Кэширование и инкрементальное сканирование:
    • Локальное кэширование в SQLite или удалённое в Redis, чтобы избежать повторного сканирования доменов (Redis требует сборки с --features redis-cache; в готовых сборках он отсутствует)
    • Инкрементальный режим для обнаружения только новых URL-адресов с момента последнего сканирования
    • Настраиваемый TTL кэша; каждое сканирование удаляет записи старше двойного TTL, а urx cache prune удаляет всё, что выходит за его пределы
    • Подкоманда urx cache для просмотра и обслуживания кэша: stats, list, prune, drop <domain>, clear

Preview

Установка

Из Cargo

# https://crates.io/crates/urx
cargo install urx

Из Homebrew

# https://formulae.brew.sh/formula/urx
brew install urx

Из исходного кода

git clone https://github.com/hahwul/urx.git
cd urx
cargo build --release

Скомпилированный бинарный файл будет доступен по пути target/release/urx.

Из Docker

ghcr.io/hahwul/urx

Категории