
Percorre recursivamente páginas da web para descobrir todas as URLs seguindo links, analisando sitemaps e arquivos robots.txt. Ideal para reconhecimento de segurança e descoberta de conteúdo.
xcrawl3r é um utilitário de linha de comando projetado para percorrer recursivamente páginas da web em busca de URLs. Ele funciona navegando ativamente pelos sites – seguindo links embutidos nas páginas e analisando arquivos (incluindo sitemaps e robots.txt) – para descobrir cada URL.
Ao contrário do xurlfind3r, que não interage diretamente com o alvo, o xcrawl3r interage diretamente com o alvo percorrendo suas páginas em tempo real. Essa abordagem ativa permite descobrir URLs que podem estar ocultas ou não indexadas, fornecendo uma visão completa do fluxo de navegação e distribuição de conteúdo do site. Isso torna o xcrawl3r uma ferramenta poderosa para pesquisadores de segurança, profissionais de TI e qualquer pessoa interessada em obter insights sobre as URLs associadas a sites.
robots.txt)stdin e stdout para fácil integração em fluxos de trabalho automatizadosVisite a página de lançamentos e encontre o arquivo adequado para seu sistema operacional e arquitetura. Baixe o arquivo pelo seu navegador ou copie a URL e obtenha-o com wget ou curl:
... com wget:
wget https://github.com/hueristiq/xcrawl3r/releases/download/v<version>/xcrawl3r-<version>-linux-amd64.tar.gz
... ou com curl:
curl -OL https://github.com/hueristiq/xcrawl3r/releases/download/v<version>/xcrawl3r-<version>-linux-amd64.tar.gz
... em seguida, extraia o binário:
tar xf xcrawl3r-<version>-linux-amd64.tar.gz
[!TIP] As etapas acima, baixar e extrair, podem ser combinadas em um único passo com este comando único:
curl -sL https://github.com/hueristiq/xcrawl3r/releases/download/v<version>/xcrawl3r-<version>-linux-amd64.tar.gz | tar -xzv
[!NOTE] Em sistemas Windows, você deve conseguir clicar duas vezes no arquivo zip para extrair o executável
xcrawl3r.
... mova o binário xcrawl3r para algum lugar no seu PATH. Por exemplo, em sistemas GNU/Linux e OS X:
sudo mv xcrawl3r /usr/local/bin/
[!NOTE] Usuários do Windows podem seguir How to: Add Tool Locations to the PATH Environment Variable para adicionar
xcrawl3rao seuPATH.
Antes de instalar a partir do código-fonte, certifique-se de que o Go está instalado no seu sistema. Você pode instalar o Go seguindo as instruções oficiais para seu sistema operacional. Para este guia, assumiremos que o Go já está instalado.
go install ...go install -v github.com/hueristiq/xcrawl3r/cmd/xcrawl3r@latest
go build ... a versão de desenvolvimentoClone o repositório
git clone https://github.com/hueristiq/xcrawl3r.git
Compile o utilitário
cd xcrawl3r/cmd/xcrawl3r && \
go build .
Mova o binário xcrawl3r para algum lugar no seu PATH. Por exemplo, em sistemas GNU/Linux e OS X:
sudo mv xcrawl3r /usr/local/bin/
Usuários do Windows podem seguir How to: Add Tool Locations to the PATH Environment Variable para adicionar xcrawl3r ao seu PATH.
[!CAUTION] Embora a versão de desenvolvimento seja uma boa maneira de dar uma olhada nos recursos mais recentes do
xcrawl3rantes do lançamento, esteja ciente de que pode conter bugs. As versões oficialmente lançadas geralmente serão mais estáveis.
Para instalar o xcrawl3r via docker:
Baixe a imagem docker usando:
docker pull hueristiq/xcrawl3r:latest
Execute o xcrawl3r usando a imagem:
docker run --rm hueristiq/xcrawl3r:latest -h
xcrawl3r funcionará logo após a instalação. No entanto, algumas configurações podem ser adicionadas a um arquivo de configuração em $HOME/.config/xcrawl3r/config.yaml, criado na primeira execução, ou definidas como variáveis de ambiente.
Exemplo de variáveis de ambiente:
XCRAWL3R_REQUEST_TIMEOUT=10
Para começar a usar o xcrawl3r, abra seu terminal e execute o seguinte comando para uma lista de opções:
xcrawl3r -h
A mensagem de ajuda é a seguinte:
_ _____
__ _____ _ __ __ ___ _| |___ / _ __
\ \/ / __| '__/ _` \ \ /\ / / | |_ \| '__|
> < (__| | | (_| |\ V V /| |___) | |
/_/\_\___|_| \__,_| \_/\_/ |_|____/|_|
v1.2.0
USAGE:
xcrawl3r [OPTIONS]
CONFIGURATION:
-c, --configuration string (default: $HOME/.config/xcrawl3r/config.yaml)
INPUT:
-u, --url string[] target URL
-l, --list string target URLs file path
For multiple URLs, use comma(,) separated value with `--url`,
specify multiple `--url`, load from file with `--list` or load from stdin.
SCOPE:
-d, --domain string[] match domain(s) URLs
For multiple domains, use comma(,) separated value with `--domain`
or specify multiple `--domain`.
--include-subdomains bool with domain(s), match subdomains' URLs
REQUEST:
--delay int delay between each request in seconds
-H, --header string[] header to include in 'header:value' format
For multiple headers, use comma(,) separated value with `--header`
or specify multiple `--header`.
--timeout int time to wait for request in seconds (default: 10)
PROXY:
-p, --proxy string[] Proxy (e.g: http://127.0.0.1:8080)
For multiple proxies use comma(,) separated value with `--proxy`
or specify multiple `--proxy`.
OPTIMIZATION:
--depth int maximum depth to crawl, `0` for infinite (default: 1)
-C, --concurrency int number of concurrent inputs to process (default: 5)
-P, --parallelism int number of concurrent fetchers to use (default: 5)
DEBUG:
--debug bool enable debug mode
OUTPUT:
--jsonl bool output in JSONL(ines)
-o, --output string output write file path
-m, --monochrome bool stdout in monochrome
-s, --silent bool stdout in silent mode
-v, --verbose bool stdout in verbose mode
Contribuições são bem-vindas e incentivadas! Sinta-se à vontade para enviar Pull Requests ou relatar Issues. Para mais detalhes, consulte as diretrizes de contribuição.
Um grande agradecimento a todos os contribuidores pelo apoio contínuo!
Este pacote é licenciado sob a licença MIT. Você é livre para usar, modificar e distribuí-lo, desde que siga os termos da licença. O texto completo da licença pode ser encontrado no repositório – Texto completo da licença MIT.