Ressources pour développeur web

Théme de la semaine : Outil pentest

Katana : guide complet pour crawler un site web

Temps de lecture estimé : 5 minutes
Accueil CyberSécurité Katana : guide complet pour crawler un site web

Si vous avez déjà voulu explorer un site web comme le ferait un moteur de recherche, voici Katana. Derrière ce nom un peu tranchant se cache un outil redoutable pour analyser un site, découvrir ses pages cachées et comprendre sa structure réelle.

  • Fonctionne Katana pour explorer un site web comme un crawler professionnel, même sans expérience en cybersécurité
  • Identifier des pages cachées, des endpoints et la structure réelle d’un site pour mieux analyser ou optimiser un projet web
  • Utiliser Katana efficacement avec les bonnes commandes, sans se perdre dans des options complexes dès le départ

Dans ce tutoriel, vous allez apprendre à utiliser Katana pas à pas. Même si vous débutez, vous allez comprendre comment fonctionne un crawler, pourquoi c’est utile… et surtout comment l’exploiter concrètement avec des exemples simples.

Qu’est-ce que Katana ?

Katana est un crawler web en ligne de commande, il s’utilise depuis le terminal avec des lignes de commandes. Concrètement, il visite un site comme le ferait Google, en suivant les liens de page en page.

Imaginez un petit robot qui :

  • arrive sur une page
  • regarde tous les liens présents
  • clique dessus automatiquement
  • recommence encore et encore

C’est exactement ce que fait Katana.

Katana le crawler de site web

Mais contrairement à un navigateur classique, il ne se contente pas d’afficher les pages. Il collecte des informations :

  • URLs
  • fichiers JavaScript
  • endpoints API
  • paramètres dans les URLs

👉 Pour en savoir plus, Endpoint : définition simple, exemples et fonctionnement

Pourquoi utiliser Katana ?

Bonne question. Et la réponse dépend de votre objectif.

Vous pouvez utiliser Katana pour :

  • analyser la structure d’un site
  • trouver des pages oubliées
  • comprendre le maillage interne
  • détecter des zones sensibles (admin, API…)

En clair : vous voyez le site comme une machine, pas comme un visiteur

Installation de Katana

Katana est développé en Go, c’est un projet de ProjectDiscovery. L’installation est donc très simple.

Sur macOS ou Linux

Si vous avez Go installé :

go install github.com/projectdiscovery/katana/cmd/katana@latest

Une fois installé, vérifiez :

katana -h

Si vous voyez la liste des options, c’est gagné 🎉

Katana depuis le terminal

Sur Windows

Deux options :

  • utiliser WSL (recommandé)
  • ou télécharger un binaire depuis GitHub

Si vous débutez, WSL reste la solution la plus simple

Première utilisation de Katana

On va faire simple.

Prenons un site fictif :

katana -u https://example.com

Et là… Katana va commencer à crawler.

Que se passe-t-il vraiment ?

Katana :

  1. charge la page d’accueil
  2. extrait tous les liens
  3. visite chaque lien
  4. répète le processus
  • Résultat : une liste d’URLs s’affiche dans votre terminal

Exemple de sortie

https://example.com
https://example.com/blog
https://example.com/contact
https://example.com/login

Rien de magique en apparence… mais c’est une cartographie brute du site

Comprendre la profondeur de crawl

Par défaut, Katana ne va pas très loin.

C’est là qu’intervient l’option -d (depth).

katana -u https://example.com -d 3

👉 Cela signifie :

  • niveau 1 → page d’accueil
  • niveau 2 → liens de la page d’accueil
  • niveau 3 → liens des liens

Pourquoi c’est important ?

Imaginez un site avec :

  • une page blog
  • puis un article
  • puis un lien vers une ressource

Sans profondeur suffisante… vous ne verrez jamais cette ressource.

Gérer le périmètre (scope)

Quand Katana crawl, il peut parfois sortir du site.

Par exemple :

  • liens vers YouTube
  • liens vers un CDN
  • liens vers d’autres domaines

Limiter au domaine

katana -u https://example.com -cs example.com

👉 -cs = crawl scope

-cs (crawl scope) permet de limiter Katana à un domaine ou périmètre précis, pour éviter qu’il explore des sites externes.

Toujours limiter le scope au début. Sinon, Katana peut partir très loin… et vous noyer sous les données

Crawl des fichiers JavaScript

C’est là que Katana devient vraiment intéressant.

Les sites modernes cachent souvent des routes dans le JavaScript.

Activer le JS crawl

katana -u https://example.com -js-crawl

Sur un site, vous ne voyez pas :

/api/user
/api/admin

Mais dans le JS :

fetch('/api/user')

👉 Katana peut le détecter.

Ainsi, vous découvrez :

  • des endpoints API
  • des routes cachées
  • des fonctionnalités non visibles

Exporter les résultats

Afficher dans le terminal, c’est bien. Mais enregistrer, c’est mieux.

katana -u https://example.com -o result.txt

Vous pouvez ensuite :

  • trier les URLs
  • analyser les patterns
  • les importer dans un outil

Filtrer les résultats

Katana peut générer énormément de données.

Il faut apprendre à filtrer. Par exemple, pour ne garder que les fichiers PHP :

Formation web et informatique - Alban Guillier - Formateur

Des formations informatique pour tous !

Débutant ou curieux ? Apprenez le développement web, le référencement, le webmarketing, la bureautique, à maîtriser vos appareils Apple et bien plus encore…

Formateur indépendant, professionnel du web depuis 2006, je vous accompagne pas à pas et en cours particulier, que vous soyez débutant ou que vous souhaitiez progresser. En visio, à votre rythme, et toujours avec pédagogie.

Découvrez mes formations Qui suis-je ?
katana -u https://example.com | grep ".php"

Ou pour trouver des pages sensibles :

katana -u https://example.com | grep -E "admin|login|api"

Vous commencez à voir son potentiel…

👉 Pour ceux qui débutent avec le terminal : La commande GREP : filtrer et rechercher du texte.

Utilisation en pentest (version simple)

Sans entrer dans du hacking complexe, Katana sert à :

  • découvrir la surface d’un site
  • trouver des points d’entrée
  • identifier des zones sensibles

Vous lancez :

katana -u https://site.com -d 3 -js-crawl

Résultat :

/admin
/api/users
/reset-password

👉 Vous avez déjà des pistes intéressantes.

Intégration avec d’autres outils

Katana est rarement utilisé seul. On peut le coupler avec httpx :

katana -u https://example.com | httpx

👉 Vérifie quelles URLs sont actives

Mais aussi avec Nuclei :

katana -u https://example.com | nuclei

👉 Recherche des vulnérabilités

Il existe également plusieurs outils similaires à Katana, chacun avec sa philosophie. Par exemple, Screaming Frog est très utilisé en SEO pour analyser visuellement un site avec une interface graphique, ce qui le rend plus accessible aux débutants.

À l’inverse, des outils comme Hakrawler ou GoSpider se rapprochent davantage de Katana avec une approche en ligne de commande, souvent privilégiée en pentest ou en automatisation.

Enfin, des solutions comme Burp Suite (en version avancée) permettent aussi de crawler un site, mais dans un contexte plus orienté sécurité.

En résumé, Katana se situe à mi-chemin entre les crawlers SEO et les outils de cybersécurité, avec un excellent équilibre entre puissance et flexibilité.

Utilisation en OSINT

Même sans objectif sécurité, Katana est utile pour des enquête OSINT.

Vous pouvez analyser un site concurrent :

katana -u https://concurrent.com -d 3

Vous découvrez :

  • pages non indexées
  • structures de contenu
  • endpoints internes

👉 C’est de l’OSINT technique.

Katana comme crawler SEO

Et là… ça devient intéressant pour votre site web.

Katana peut servir de crawler SEO simplifié.

katana -u https://votresite.com -d 3

Ce que vous pouvez analyser

  • pages orphelines (non découvertes)
  • profondeur des pages
  • structure du site

👉 C’est une base brute… mais très puissante.

Automatiser Katana

Quand vous avez compris les bases, vous pouvez automatiser avec une tâche cron.

Lancer tous les jours :

0 2 * * * katana -u https://example.com -o daily.txt

Pourquoi automatiser ?

  • surveiller un site
  • détecter des changements
  • suivre l’évolution

Prenez toujours le temps de :

  • limiter la profondeur
  • filtrer les résultats
  • comprendre ce que vous voyez

👉 Katana n’analyse pas pour vous… il vous donne la matière.

Mais soyons honnêtes. Katana ne fait pas :

  • d’analyse SEO complète
  • de rendu visuel
  • d’audit automatique

👉 C’est un outil brut.

Cas pratique complet

Imaginons un site :

katana -u https://monsite.com -d 3 -js-crawl -o scan.txt

Ensuite :

grep "admin" scan.txt
grep "api" scan.txt

👉 Vous identifiez rapidement :

  • zones sensibles
  • pages importantes
  • architecture réelle

Tableau récapitulatif des commandes Katana

CommandeDescriptionExemple concretNiveau
katana -u URLLance un crawl simple du sitekatana -u https://example.comDébutant
katana -u URL -d NDéfinit la profondeur de crawlkatana -u https://example.com -d 3Débutant
katana -u URL -js-crawlAnalyse les fichiers JavaScriptkatana -u https://example.com -js-crawlIntermédiaire
katana -u URL -o fichier.txtEnregistre les résultats dans un fichierkatana -u https://example.com -o result.txtDébutant
katana -u URL -cs domaine.comLimite le crawl à un domaine préciskatana -u https://example.com -cs example.comIntermédiaire
katana -u URL -silentSupprime les logs inutiles (sortie propre)katana -u https://example.com -silentDébutant
katana -u URL -timeout 10Définit un timeout en secondeskatana -u https://example.com -timeout 10Intermédiaire
katana -u URL -retry 2Nombre de tentatives en cas d’écheckatana -u https://example.com -retry 2Intermédiaire
katana -u URL -concurrency 10Nombre de requêtes simultanéeskatana -u https://example.com -concurrency 10Avancé
katana -u URL -rate-limit 5Limite le nombre de requêtes par secondekatana -u https://example.com -rate-limit 5Avancé
katana -u URL -headlessActive le mode navigateur (sites JS complexes)katana -u https://example.com -headlessAvancé
katana -u URL -depth 3Alias de -d pour la profondeurkatana -u https://example.com -depth 3Débutant
katana -list urls.txtCrawl plusieurs URLs depuis un fichierkatana -list sites.txtIntermédiaire
katana -u URL -match-regex REGEXFiltre les résultats avec une regexkatana -u https://example.com -match-regex "api"Avancé
katana -u URL -filter-regex REGEXExclut certains résultatskatana -u https://example.com -filter-regex "logout"Avancé
katana -u URL -extension-filter js,phpFiltre par extension de fichierkatana -u https://example.com -extension-filter php,htmlIntermédiaire
katana -u URL -jsonSortie au format JSONkatana -u https://example.com -jsonIntermédiaire
katana -u URL -proxy http://127.0.0.1:8080Passe par un proxy (Burp, etc.)katana -u https://example.com -proxy http://127.0.0.1:8080Avancé
katana -u URL -H "Header: value"Ajoute un header personnalisékatana -u https://example.com -H "Authorization: Bearer token"Avancé
katana -u URL -cookie "session=abc123"Ajoute des cookieskatana -u https://example.com -cookie "PHPSESSID=xyz"Avancé

Si vous débutez, retenez seulement ces 5 commandes :

katana -u https://site.com
katana -u https://site.com -d 3
katana -u https://site.com -js-crawl
katana -u https://site.com -o result.txt
katana -u https://site.com -cs site.com

👉 Avec ça, vous pouvez déjà faire 80% des analyses utiles


Katana est un outil à la fois simple… et incroyablement puissant. Au début, vous aurez peut-être l’impression de regarder une avalanche de données sans trop savoir quoi en faire. Et c’est normal.

Mais plus vous l’utilisez, plus vous développez un réflexe d’analyse. Vous commencez à voir des patterns, à comprendre la structure d’un site, à détecter des anomalies presque instinctivement.

Et là, Katana ne devient plus un simple outil… mais un véritable prolongement de votre réflexion technique.