
New releaseSep 19, 2026
urx v0.11.0
OSINTアーカイブからURLを抽出してセキュリティインサイトを得る
セキュリティインサイトのためにOSINTアーカイブからURLを抽出します。
Urxは、Wayback MachineやCommon CrawlなどのOSINTアーカイブからドメインのURLを収集します。すべてのソースを並列にクエリし、その後セキュリティ作業向けに結果をフィルタリング、テスト、整形します。
機能
- キー不要のソース: Wayback Machine、Common Crawl、OTX、Arquivo.pt、URLScan(匿名)
- キーローテーション対応のキー付きソース: VirusTotal、URLScan、ZoomEye、GitHub Code Search、BeVigil(AndroidアプリからのURL)
--cdx-endpointによるその他の任意のCDXサーバー(pywb、OutbackCDX、各国の国立公文書館)- アーカイブ側のフィルタ(
--from/--to、--archive-status、--archive-mime)はCDXクエリ内で実行 - すべてのプロバイダーに対する、キャプチャ日時・MIMEタイプ・ステータスに基づくクライアント側メタデータフィルタ(
--meta-*) - パススコープのターゲット(
urx example.com/shop)とバグバウンティのスコープファイル(--scope-file) - 拡張子、部分文字列、正規表現(
--match-regex、--filter-regex)、プリセット(no-images、only-js、only-secrets、only-backup、only-config、only-api)によるフィルタ - 正規化と重複排除:
--normalize-url、--merge-endpoint、--dedup-similar - plain、JSON、JSON Lines、CSV、
wordlistでの出力。--streamはURLを到着順に書き出し - パラメータビュー:
--params、--params-by-endpoint、ffufやdalfox向けの--fuzz-placeholder FUZZ - URLごとのキャプチャメタデータ:
first_seen、last_seen、mime、archive_status、digest - WARC、URLTeam、テキストファイル(
--files)またはstdinからの入力 - ライブテスト:
--check-status、--check-title、--extract-links、--extract-js-endpoints - アーカイブされたボディ:
--archive-bodyは既に存在しないページからリンクを抽出し、個別のボディごとに1リクエスト。--archive-body-dirはそれらを保存 - APIスペックの展開(
--expand-specs): OpenAPI 3.x、Swagger 2.0、GraphQLイントロスペクション - アーカイブされたrobots.txtとsitemap.xmlのバージョン(
--archived-discovery) - ターゲットへの認証済みリクエスト(
-H、--cookie、--user-agent)。アーカイブには決して送信されません - SQLiteまたはRedisキャッシュ(Redisは
--features redis-cacheビルドが必要)、--incrementalスキャン、urx cacheメンテナンス、--notifyWebhook

インストール
cargo install urx # https://crates.io/crates/urx
brew install urx # https://formulae.brew.sh/formula/urx
yay -S urx # AUR
choco install urx # Chocolatey (Windows)
ソースから(target/release/urx にあるバイナリ):
git clone https://github.com/hahwul/urx.git
cd urx
cargo build --release
Docker(ghcr.io/hahwul/urx)。イメージにはエントリポイントがないため、イメージ名の後に ./urx を指定します:
docker run --rm ghcr.io/hahwul/urx:latest ./urx example.com
Linux、macOS、Windows 向けのビルド済みバイナリは、それぞれ .sha256 とともに releases ページ で公開されています。
シェル補完(bash、zsh、fish、powershell、elvish)と man ページ:
urx --completions zsh > ~/.zfunc/_urx # ~/.zfunc must be on $fpath
urx --completions bash > ~/.local/share/bash-completion/completions/urx
urx --completions fish > ~/.config/fish/completions/urx.fish
urx --manpage > ~/.local/share/man/man1/urx.1
使用方法
基本的な使用方法
urx example.com # one domain
urx example.com example.org # several domains
cat domains.txt | urx # domains from stdin
オプション
Usage: urx [OPTIONS] [DOMAINS]... [COMMAND]
Commands:
cache Inspect and maintain the URL cache: stats, list, prune, drop <DOMAIN>..., clear
Arguments:
[DOMAINS]... Domains to fetch URLs for
Options:
-c, --config <CONFIG> Config file to load
--provider-config <PATH> Separate provider config file holding only API keys (default: ~/.config/urx/provider-config.toml; %APPDATA%\urx\ on Windows). CLI/env > provider-config > main config.
--completions <SHELL> Print a shell completion script (bash, zsh, fish, powershell, elvish) to stdout and exit
--manpage Print the roff man page to stdout and exit
-h, --help Print help
-V, --version Print version
Input Options:
--files <FILES>... Read URLs directly from files (supports WARC, URLTeam compressed, and text files)
--domain-list <PATH> File of newline-separated domains to scan (repeatable; merged with positional DOMAINS; stdin is read only when they name no domains; `#` comments allowed) [alias: --dL]
Output Options:
-o, --output <OUTPUT> Output file to write results
--output-dir <PATH> Write one file per URL host into this directory (extension matches --format). Coexists with --output / stdout. [alias: --oD]
-f, --format <FORMAT> Output format: "plain", "json" (one array), "jsonl" (one JSON object per line), "csv", "wordlist" (path segments and parameter names, deduplicated and sorted); anything else is a usage error [default: plain]
--stream Write URLs as each provider reports them instead of once at the end (unsorted; bypasses cache; rejects options needing the full result set)
--merge-endpoint Merge endpoints with the same path and merge URL parameters
--normalize-url Normalize URLs for better deduplication (sorts query parameters, removes trailing slashes)
--dedup-similar Collapse URLs that differ only in variable data (numeric ids, UUIDs, hashes, dates, query values)
--params Replace the URL list with every query parameter name the run saw, once each
--params-by-endpoint
One line per endpoint: the endpoint and the comma-separated union of the parameter names seen on it (id-looking path segments collapse to `{id}`)
--fuzz-placeholder <VALUE>
Replace every query parameter value with VALUE, keeping one URL per parameter signature — output you can feed straight to ffuf or dalfox