アップデート一覧に戻る
New releaseSep 19, 2026

urx v0.11.0

OSINTアーカイブからURLを抽出してセキュリティインサイトを得る

共有
Urx Logo

セキュリティインサイトのために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 メンテナンス、--notify Webhook

Preview

インストール

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

カテゴリ