
New releaseSep 19, 2026
urx v0.11.0
Extrai URLs de Arquivos de OSINT para Insights de Segurança
Extrai URLs de Arquivos OSINT para Insights de Segurança.
Urx é uma ferramenta de linha de comando projetada para coletar URLs de arquivos OSINT, como a Wayback Machine e o Common Crawl. Construída em Rust para eficiência, ela aproveita o processamento assíncrono para consultar rapidamente múltiplas fontes de dados. Esta ferramenta simplifica o processo de coleta de informações de URL para um domínio especificado, fornecendo um conjunto de dados abrangente que pode ser usado para diversos fins, incluindo testes de segurança e análise.
Recursos
- Busca URLs de múltiplas fontes em paralelo (Wayback Machine, Common Crawl, OTX, Arquivo.pt)
- Conecte qualquer outro servidor de índice CDX — arquivos web nacionais, um pywb privado, OutbackCDX — com
--cdx-endpoint URL, sem necessidade de alteração de código - Sem chave por padrão: Wayback, Common Crawl, OTX, Arquivo.pt e URLScan (anônimo) funcionam sem uma chave de API
- Provedor BeVigil: URLs extraídas de aplicativos Android descompactados — endpoints que nenhum arquivo web jamais rastreou
- Rotação de chave de API para cada provedor com chave (VirusTotal, URLScan, ZoomEye, GitHub, BeVigil) para mitigar limites de taxa
- Testes autenticados:
-H,--cookiee--user-agentaplicam-se a cada requisição que o urx faz ao alvo (--check-status,--extract-links,--extract-js-endpoints,--expand-specse as sondagensrobots/sitemap) e deliberadamente nunca são enviados a um arquivo - Filtre resultados por extensões de arquivo, padrões de substring ou expressões regulares completas (
--match-regex/--filter-regex) - Presets predefinidos, tanto por família de arquivo ("no-images", "only-js") quanto por interesse de segurança ("only-secrets", "only-backup", "only-config", "only-api")
- Filtragem do lado do arquivo: envie código de status, tipo MIME e intervalo de datas para a própria consulta CDX, para que capturas filtradas nunca cruzem a rede
- Filtragem de metadados do lado do cliente (
--meta-*): filtre por data da primeira/última captura, tipo MIME registrado e status registrado uniformemente em todos os provedores, após a coleta - Alvos com escopo de caminho:
urx example.com/shopenvia o escopo para a própria consulta CDX (url=example.com/shop*), então uma subárvore de um site grande custa uma fração do índice inteiro em vez de ser filtrada no lado do cliente - Arquivos de escopo de bug bounty (
--scope-file): a própria lista*.example.com/!admin.example.comde um programa usada literalmente, repetível e unida, com exclusões sempre prevalecendo - Normalização e deduplicação de URL: Ordene parâmetros de consulta, remova barras finais, mescle URLs semanticamente idênticas e agrupe quase-duplicatas que diferem apenas em ids, hashes ou datas (
--dedup-similar) - Suporte para múltiplos formatos de saída: texto simples, JSON, JSON Lines, CSV e
wordlist— os segmentos de caminho e nomes de parâmetros a partir dos quais o alvo é construído, com ids, hashes e datas deixados de fora - Visualizações de parâmetros e fuzz:
--params(o inventário completo de parâmetros do alvo),--params-by-endpoint(qual endpoint aceita o quê) e--fuzz-placeholder FUZZ(uma URL modelada por assinatura de parâmetro, pronta para ffuf ou dalfox) - Metadados de captura de arquivo:
first_seen,last_seen,mime,archive_statusedigestretornam com cada URL que um arquivo CDX reportou, sem custo extra de rede - Saída em streaming (
--stream): as URLs são escritas conforme cada provedor as reporta, então um pipeline começa a funcionar imediatamente em vez de esperar pelo arquivo mais lento - Suporte a entrada direta de arquivos: Leia URLs diretamente de arquivos WARC, arquivos compactados URLTeam e arquivos de texto
- Saída de resultados para o console ou um arquivo, ou transmita via stdin para integração em pipeline
- Teste de URL:
- Filtre e valide URLs com base em códigos de status HTTP e padrões.
- Extraia links adicionais das URLs coletadas — âncoras, scripts, folhas de estilo, ações de formulário, iframes, imagens, fontes de mídia, objetos, embeds e alvos de meta-refresh
- Minere os corpos de resposta arquivados das URLs coletadas (
--archive-body), para que páginas que não existem mais ainda entreguem os links que continham — uma requisição por corpo distinto, graças à deduplicação por digest do CDX - Com
--extract-js-endpoints, minere também o JavaScript arquivado: um bundle nomeado por hash de build retorna 404 no momento em que o site é reimplantado, e o arquivo é o único lugar onde sua superfície de API ainda existe - Mantenha os corpos reproduzidos (
--archive-body-dir) como um corpus para grep do que nenhum extrator de links procura — comentários de desenvolvedores, credenciais embutidas, hostnames internos — sem requisições extras - Expanda especificações de API (
--expand-specs): documentos OpenAPI 3.x, Swagger 2.0 e introspecção GraphQL, JSON ou YAML, transformados em cada rota que descrevem — uma requisição compra toda a superfície documentada - Metadados de resposta:
--check-statustambém registraLocation,Content-LengtheContent-Type, e--check-titleadiciona o<title>do HTML
- Descoberta de robots.txt e sitemap.xml arquivados (
--archived-discovery): cada versão distinta que a Wayback Machine mantém, então umDisallow:de 2015 ainda nomeia os caminhos que o site deixou de mencionar desde então - Cache e Varredura Incremental:
- Cache local em SQLite ou remoto em Redis para evitar reescanear domínios (Redis requer uma build com
--features redis-cache; builds empacotadas o deixam de fora) - Modo incremental para descobrir apenas novas URLs desde a última varredura
- TTL de cache configurável; cada varredura remove entradas mais antigas que o dobro do TTL, e
urx cache pruneremove qualquer coisa além disso - Subcomando
urx cachepara inspecionar e manter o cache:stats,list,prune,drop <domain>,clear
- Cache local em SQLite ou remoto em Redis para evitar reescanear domínios (Redis requer uma build com

Instalação
Do Cargo
# https://crates.io/crates/urx
cargo install urx
Via Homebrew
# https://formulae.brew.sh/formula/urx
brew install urx
Do Código-Fonte
git clone https://github.com/hahwul/urx.git
cd urx
cargo build --release
O binário compilado estará disponível em target/release/urx.
A partir do Docker
docker pull ghcr.io/hahwul/urx:latest
# the image has no entrypoint, so name the binary before its arguments
docker run --rm ghcr.io/hahwul/urx:latest ./urx example.com