hakrawler
Crawler web simple et rapide conçu pour une découverte facile et rapide des endpoints et des assets d'une application web. Conçu pour être piloté avec d'autres outils. Simple, fast web crawler designed for easy, quick discovery of endpoints and assets within a web application. Designed to be piped with other tools.
↗ https://github.com/hakluke/hakrawlerOverview
hakrawler is a Go-based web crawler built for fast URL discovery. It reads URLs from stdin, crawls each one, and outputs discovered links. Designed to integrate cleanly in Unix pipelines alongside tools like subfinder, httpx, and gf.
Basic Usage
Crawl a single URL
echo "https://example.com" | hakrawler
Crawl from a file
cat urls.txt | hakrawler
Depth control
echo "https://example.com" | hakrawler -d 3
Include subdomains
echo "https://example.com" | hakrawler -subs
Output only URLs (no other info)
echo "https://example.com" | hakrawler -plain
Discovery Options
Include URLs from wayback machine
echo "https://example.com" | hakrawler -wayback
Parse JS files for more URLs
echo "https://example.com" | hakrawler
Filter by scope (only same domain)
echo "https://example.com" | hakrawler -scope example.com
Set cookies for authenticated crawl
echo "https://example.com" | hakrawler -h "Cookie: session=abc123"
Multiple custom headers
echo "https://example.com" | hakrawler -h "Authorization: Bearer TOKEN" -h "X-Custom: value"
Pipelines
Full subdomain → alive → crawl → parameter discovery pipeline
subfinder -d example.com -silent | \
httpx -silent | \
hakrawler | \
gf xss | \
dalfox pipe
Find endpoints with parameters
echo "https://example.com" | hakrawler | grep "?"
Extract JavaScript files
echo "https://example.com" | hakrawler | grep "\.js$"
Crawl and check with nuclei
cat hosts.txt | hakrawler | httpx -silent | nuclei -t exposures/
Tips
- Much lighter than full browser-based crawlers — good for quick discovery
- Combine with
gf(tomnomnom’s grep-based pattern finder) for targeted parameter extraction - Use
-d 2or-d 3for deeper crawls; default depth is 1 - Authenticated crawling: capture cookies from a logged-in browser session and pass with
-h
Help / Man page
hakrawler [flags]
(reads URLs from stdin)
-d INT Depth to crawl (default: 1)
-subs Include subdomains in crawl scope
-plain Output only URLs (no metadata)
-wayback Include Wayback Machine URLs
-scope STR Scope string (domain to limit crawl to)
-h STR Add custom header (repeatable)
-proxy STR Proxy URL
-t INT Number of threads (default: 8)
-insecure Disable TLS verification
-u STR User agent
-timeout N Request timeout seconds
Vue d’ensemble
hakrawler est un crawler web écrit en Go, conçu pour une découverte d’URLs rapide. Il lit les URLs depuis stdin, explore chacune d’elles, et affiche les liens découverts. Conçu pour s’intégrer proprement dans des pipelines Unix aux côtés d’outils comme subfinder, httpx et gf.
Utilisation de base
# Explorer une seule URL
echo "https://example.com" | hakrawler
# Explorer depuis un fichier
cat urls.txt | hakrawler
# Contrôle de la profondeur
echo "https://example.com" | hakrawler -d 3
# Inclure les sous-domaines
echo "https://example.com" | hakrawler -subs
# N'afficher que les URLs (aucune autre info)
echo "https://example.com" | hakrawler -plain
Options de découverte
# Inclure les URLs de la wayback machine
echo "https://example.com" | hakrawler -wayback
# Parser les fichiers JS pour davantage d'URLs
echo "https://example.com" | hakrawler
# Filtrer par périmètre (même domaine uniquement)
echo "https://example.com" | hakrawler -scope example.com
# Définir des cookies pour un crawl authentifié
echo "https://example.com" | hakrawler -h "Cookie: session=abc123"
# Plusieurs en-têtes personnalisés
echo "https://example.com" | hakrawler -h "Authorization: Bearer TOKEN" -h "X-Custom: value"
Pipelines
# Pipeline complet sous-domaines → hôtes actifs → crawl → découverte de paramètres
subfinder -d example.com -silent | \
httpx -silent | \
hakrawler | \
gf xss | \
dalfox pipe
# Trouver des endpoints avec des paramètres
echo "https://example.com" | hakrawler | grep "?"
# Extraire les fichiers JavaScript
echo "https://example.com" | hakrawler | grep "\.js$"
# Explorer et vérifier avec nuclei
cat hosts.txt | hakrawler | httpx -silent | nuclei -t exposures/
Conseils
- Bien plus léger que les crawlers complets basés sur un navigateur : bon pour une découverte rapide
- Combiner avec
gf(l’outil de recherche par pattern grep de tomnomnom) pour une extraction de paramètres ciblée - Utiliser
-d 2ou-d 3pour des crawls plus profonds ; la profondeur par défaut est 1 - Crawl authentifié : capturez les cookies depuis une session navigateur connectée et passez-les avec
-h
Aide / Page de manuel
hakrawler [flags]
(reads URLs from stdin)
-d INT Depth to crawl (default: 1)
-subs Include subdomains in crawl scope
-plain Output only URLs (no metadata)
-wayback Include Wayback Machine URLs
-scope STR Scope string (domain to limit crawl to)
-h STR Add custom header (repeatable)
-proxy STR Proxy URL
-t INT Number of threads (default: 8)
-insecure Disable TLS verification
-u STR User agent
-timeout N Request timeout seconds