Voltar às atualizações
New releaseSep 19, 2026

urx v0.11.0

Extrai URLs de Arquivos de OSINT para Insights de Segurança

Compartilhar
Urx Logo

Extrai URLs de Arquivos OSINT para Insights de Segurança.

O Urx coleta URLs de um domínio a partir de arquivos OSINT como o Wayback Machine e o Common Crawl. Ele consulta todas as fontes em paralelo e, em seguida, filtra, testa e formata os resultados para trabalhos de segurança.

Recursos

  • Fontes sem chave: Wayback Machine, Common Crawl, OTX, Arquivo.pt, URLScan (anônimo)
  • Fontes com chave e rotação de chaves: VirusTotal, URLScan, ZoomEye, GitHub Code Search, BeVigil (URLs de aplicativos Android)
  • Qualquer outro servidor CDX (pywb, OutbackCDX, arquivos nacionais) via --cdx-endpoint
  • Filtros do lado do arquivo (--from/--to, --archive-status, --archive-mime) executados dentro da consulta CDX
  • Filtros de metadados do lado do cliente (--meta-*) por data de captura, tipo MIME e status, para todos os provedores
  • Alvos com escopo de caminho (urx example.com/shop) e arquivos de escopo de bug bounty (--scope-file)
  • Filtros por extensão, substring, regex (--match-regex, --filter-regex) e presets (no-images, only-js, only-secrets, only-backup, only-config, only-api)
  • Normalização e deduplicação: --normalize-url, --merge-endpoint, --dedup-similar
  • Saída em texto simples, JSON, JSON Lines, CSV ou wordlist; --stream grava as URLs conforme chegam
  • Visualizações de parâmetros: --params, --params-by-endpoint, --fuzz-placeholder FUZZ para ffuf ou dalfox
  • Metadados de captura por URL: first_seen, last_seen, mime, archive_status, digest
  • Entrada de WARC, URLTeam e arquivos de texto (--files) ou stdin
  • Testes ao vivo: --check-status, --check-title, --extract-links, --extract-js-endpoints
  • Corpos arquivados: --archive-body extrai links de páginas que não existem mais, uma requisição por corpo distinto; --archive-body-dir os mantém
  • Expansão de especificações de API (--expand-specs): OpenAPI 3.x, Swagger 2.0, introspecção GraphQL
  • Versões arquivadas de robots.txt e sitemap.xml (--archived-discovery)
  • Requisições autenticadas ao alvo (-H, --cookie, --user-agent), nunca enviadas aos arquivos
  • Cache SQLite ou Redis (Redis requer uma build com --features redis-cache), varreduras --incremental, manutenção com urx cache e webhooks --notify

Preview

Instalação

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)

Do código-fonte (binário em target/release/urx):

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

Docker (ghcr.io/hahwul/urx). A imagem não possui entrypoint, então coloque ./urx após o nome da imagem:

docker run --rm ghcr.io/hahwul/urx:latest ./urx example.com

Binários pré-compilados para Linux, macOS e Windows, cada um com um .sha256, estão na página de releases.

Completions de shell (bash, zsh, fish, powershell, elvish) e a página de manual:

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

Uso

Uso Básico

urx example.com                 # one domain
urx example.com example.org     # several domains
cat domains.txt | urx           # domains from stdin

Opções

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

Categorias