Ressources pour développeur web

Théme de la semaine : WebSécurité

Nuclei : Guide complet pour débutez un audit de sécurité

Temps de lecture estimé : 25 minutes
Accueil CyberSécurité Nuclei : Guide complet pour débutez un audit de sécurité

Vous souhaitez automatiser vos audits de sécurité sans passer des heures à tester manuellement chaque page, fichier ou configuration ? Nuclei en CLI est aujourd’hui l’un des outils les plus populaires pour détecter des vulnérabilités, des erreurs de configuration, des technologies exposées ou des fichiers sensibles sur un site web.

Dans ce tutoriel complet dédié à Nuclei, vous allez apprendre à l’installer, comprendre son fonctionnement, utiliser les templates, lancer vos premiers scans et interpréter les résultats obtenus. Même si vous débutez en cybersécurité, vous découvrirez pas à pas comment réaliser vos premières analyses de sécurité automatisées de manière simple, efficace et dans les bonnes pratiques.

  • Identifier rapidement les vulnérabilités, erreurs de configuration et informations sensibles présentes sur vos sites web.
  • Comprendre comment fonctionnent les templates Nuclei afin d’interpréter correctement les résultats et éviter les pièges les plus fréquents.
  • Mettre en place une routine d’audit automatisée pour surveiller plus efficacement la sécurité de vos projets web au quotidien.

Quand on débute en cybersécurité, on découvre assez vite qu’un audit de sécurité peut vite ressembler à une chasse au trésor… sauf que le trésor, ce sont parfois des fichiers oubliés, des configurations bancales, des technologies vulnérables ou des failles connues qui traînent encore sur un site web.

Et tout vérifier à la main serait trop long, répétitif et franchement décourageant.

  • C’est précisément là que Nuclei CLI devient intéressant.

Nuclei est donc un outil en ligne de commande qui va vous permettre d’automatiser une partie de l’analyse de sécurité. Il ne remplace pas un expert, il ne “pirate” pas magiquement un site, et il ne transforme pas votre terminal en baguette de sorcier. En revanche, il peut vous aider à repérer rapidement des vulnérabilités connues ou des indices techniques importants.

L’objectif est simple : vous permettre de débuter proprement avec Nuclei CLI, sans brûler les étapes et surtout avec les bons réflexes de sécurité.

Avant de commencer, une règle importante : vous devez utiliser Nuclei uniquement sur des sites, serveurs ou applications que vous possédez, administrez, ou pour lesquels vous avez une autorisation claire. Scanner un site tiers sans permission peut être illégal. Même si “c’était juste pour tester”, la loi, elle, n’a pas toujours beaucoup d’humour.

Qu’est-ce que Nuclei ?

Nuclei est un scanner de sécurité open source créé par ProjectDiscovery. Il fonctionne en ligne de commande, c’est-à-dire depuis un terminal, et permet d’analyser une ou plusieurs cibles à partir de règles appelées templates.

Un template est un petit fichier qui décrit ce que Nuclei doit rechercher. Par exemple, un template peut demander à Nuclei de vérifier si un fichier sensible est accessible, si une technologie vulnérable est présente, si une mauvaise configuration existe, ou si un comportement particulier indique une faille connue.

Nuclei

Vous pouvez imaginer Nuclei comme un assistant très méthodique. Vous lui donnez une liste de choses à vérifier, puis il passe en revue vos cibles pour voir si certains signaux correspondent.

Par exemple, au lieu de vérifier manuellement si plusieurs sites exposent un fichier de configuration, vous pouvez demander à Nuclei de le faire automatiquement.

Ce qui rend Nuclei très apprécié, c’est son approche basée sur les templates. Vous n’êtes pas obligé de modifier le code de l’outil pour ajouter une nouvelle vérification. Il suffit d’utiliser ou d’écrire un template adapté.

À quoi sert Nuclei dans une analyse de sécurité ?

Nuclei sert principalement à automatiser des vérifications de sécurité.

Il peut être utilisé pour repérer des vulnérabilités connues, détecter des fichiers exposés, identifier des technologies, vérifier des erreurs de configuration, analyser certains éléments HTTP, DNS ou SSL, et aider à prioriser les corrections.

Prenons un exemple simple.

Vous gérez plusieurs sites web. Vous voulez vérifier rapidement si certains d’entre eux exposent accidentellement un fichier sensible, comme un fichier .env, un fichier de sauvegarde ou une page d’administration oubliée. À la main, ce serait répétitif. Avec Nuclei, vous pouvez lancer une analyse sur une liste d’URL et obtenir rapidement des résultats.

Cela ne veut pas dire que tous les résultats sont automatiquement des failles exploitables. Nuclei vous donne des indices, parfois très précieux, mais vous devez ensuite vérifier, comprendre et confirmer.

C’est un peu comme un détecteur de fumée. Quand il sonne, cela ne veut pas toujours dire que toute la maison brûle. Parfois, c’est juste le grille-pain. Mais vous allez quand même vérifier, et vous avez raison.

Pourquoi Nuclei est utile pour les débutants ?

Nuclei peut sembler impressionnant au départ, car il s’utilise en ligne de commande. Pourtant, il est plutôt accessible si vous avancez progressivement.

Pour un débutant, il a plusieurs avantages.

D’abord, les commandes de base sont simples. Scanner une URL peut se faire avec une seule ligne. Ensuite, les résultats sont relativement lisibles, avec des niveaux de sévérité comme lowmediumhigh ou critical. Enfin, les templates permettent de comprendre comment une vérification de sécurité est construite.

En travaillant avec Nuclei, vous n’apprenez pas seulement à lancer un outil. Vous commencez aussi à comprendre ce que l’on cherche pendant un audit : des comportements anormaux, des informations exposées, des services mal configurés, ou des composants à risque.

C’est donc un très bon outil pour pratiquer, à condition de rester dans un cadre légal et pédagogique.

Comprendre le fonctionnement de Nuclei

Avant de lancer des commandes dans tous les sens, prenons quelques minutes pour comprendre la logique de Nuclei.

Nuclei repose sur trois éléments principaux : une cible, un template et un résultat.

La cible est ce que vous voulez analyser. Cela peut être une URL, un domaine, une adresse IP ou une liste de cibles.

Le template est la règle de détection. Il explique à Nuclei ce qu’il doit tester.

Le résultat est ce que Nuclei vous renvoie lorsqu’une vérification correspond à ce qui est défini dans le template.

Par exemple, si vous lancez Nuclei sur https://exemple.fr avec un template qui cherche une page de connexion WordPress, Nuclei va envoyer une requête, analyser la réponse, puis indiquer si la page attendue a été trouvée.

Comment fonctionne Nuclei

Le fonctionnement général est donc assez logique : Nuclei lit les templates, envoie des requêtes adaptées, compare les réponses avec les conditions définies, puis affiche les correspondances.

Le rôle des templates Nuclei

Les templates sont le cœur de Nuclei.

Sans template, Nuclei ne sait pas quoi chercher. Avec des templates, il devient capable de détecter des milliers de situations différentes.

Un template est généralement écrit en YAML. YAML est un format de texte lisible par les humains. Il utilise des indentations pour organiser les informations. Si vous avez déjà manipulé du JSON, vous pouvez voir YAML comme une version plus agréable à lire, mais aussi plus sensible aux espaces. Oui, YAML est un peu susceptible. Une indentation mal placée, et il bug.

Voici une idée simplifiée de ce qu’un template peut contenir :

id: exemple-detection

info:
  name: Exemple de détection simple
  author: crea-blog
  severity: info

http:
  - method: GET
    path:
      - "{{BaseURL}}/"

    matchers:
      - type: word
        words:
          - "Bienvenue"

Ce template fictif dit en substance : “Envoie une requête GET sur la page d’accueil, puis regarde si le mot Bienvenue apparaît dans la réponse.”

Bien entendu, les vrais templates de sécurité peuvent être beaucoup plus précis. Ils peuvent vérifier des en-têtes HTTP, des codes de statut, des chaînes de caractères, des expressions régulières ou des comportements spécifiques.

Les niveaux de sévérité dans Nuclei

Lorsque Nuclei affiche un résultat, il indique généralement un niveau de sévérité.

  • Le niveau info correspond à une information utile, mais pas forcément dangereuse. Par exemple, la détection d’une technologie utilisée par le site.
  • Le niveau low indique un problème faible. Ce n’est pas forcément urgent, mais cela mérite d’être noté.
  • Le niveau medium signale un problème plus sérieux, qui peut avoir un impact réel selon le contexte.
  • Le niveau high correspond à une vulnérabilité importante. Ce type de résultat doit être vérifié rapidement.
  • Le niveau critical indique un risque majeur. Dans un vrai environnement professionnel, ce niveau doit être traité en priorité.

Attention toutefois : un niveau élevé dans Nuclei ne signifie pas automatiquement que votre site est compromis. Cela signifie qu’un signal correspond à une règle de détection.

Il faut ensuite confirmer le résultat, comprendre le contexte, et éviter de paniquer trop vite. La panique est rarement une bonne méthode d’audit, même avec un café très serré.

Installer Nuclei CLI

Passons maintenant à l’installation.

Nuclei peut être installé sur Windows, macOS et Linux. La méthode recommandée dépend de votre environnement, mais l’installation via Go est très courante.

Go est un langage de programmation. Beaucoup d’outils modernes de cybersécurité sont écrits en Go, car il permet de créer des programmes rapides et faciles à distribuer.

Vérifier si Go est installé

Ouvrez votre terminal, puis tapez :

go version

Si Go est installé, vous verrez une réponse ressemblant à ceci :

go version go1.24.2 darwin/amd64

Si votre terminal indique que la commande go est introuvable, vous devrez installer Go avant de continuer.

Sur macOS, vous pouvez passer par Homebrew :

brew install go

Sur Linux, selon votre distribution, vous pouvez utiliser le gestionnaire de paquets ou télécharger Go depuis le site officiel.

Sur Windows, le plus simple est généralement d’installer Go avec l’installateur officiel, puis de redémarrer le terminal.

Installer Nuclei avec Go

Une fois Go installé, vous pouvez installer Nuclei avec cette commande :

go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest

Cette commande demande à Go de télécharger le code de Nuclei, de le compiler, puis d’installer l’exécutable.

Le paramètre @latest signifie que vous voulez installer la dernière version disponible.

Après l’installation, vérifiez que Nuclei répond correctement :

nuclei -version

Si tout va bien, Nuclei affiche sa version.

Nuclei version

Si la commande n’est pas reconnue, cela signifie souvent que le dossier où Go installe les exécutables n’est pas dans votre variable PATH. En clair, votre système ne sait pas encore où chercher Nuclei.

Sur macOS ou Linux, vous pouvez ajouter ceci à votre fichier .zshrc.bashrc ou équivalent :

export PATH=$PATH:$(go env GOPATH)/bin

Puis rechargez votre terminal :

source ~/.zshrc

Adaptez le nom du fichier si vous utilisez Bash :

source ~/.bashrc

Ensuite, testez à nouveau :

nuclei -version

Mettre à jour Nuclei

Comme Nuclei évolue régulièrement, il est important de le maintenir à jour.

Pour mettre à jour l’outil lui-même, vous pouvez relancer la commande d’installation :

go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest

Cela récupère la dernière version disponible.

Vous pouvez ensuite vérifier :

nuclei -version

Cette habitude est importante, car un outil de sécurité obsolète peut manquer des fonctionnalités, des corrections ou des améliorations de détection.

Installer et mettre à jour les templates Nuclei

Une fois Nuclei installé, vous devez aussi récupérer les templates.

Les templates officiels sont maintenus par ProjectDiscovery et par la communauté. Ils évoluent très souvent, car de nouvelles vulnérabilités, mauvaises configurations ou méthodes de détection apparaissent régulièrement.

Pour télécharger ou mettre à jour les templates, utilisez :

nuclei -update-templates

Cette commande récupère les templates et les place dans le dossier prévu par Nuclei.

Nuclei template

Selon votre système, vous les trouverez généralement dans un dossier proche de :

~/nuclei-templates/

Vous pouvez afficher le contenu avec :

ls ~/nuclei-templates/

Vous verrez alors différents dossiers, par exemple liés au HTTP, au DNS, aux CVE, aux expositions de fichiers, aux mauvaises configurations ou aux technologies.

Pour un débutant, il n’est pas nécessaire de tout connaître immédiatement. Retenez simplement ceci :

  • Les templates sont la bibliothèque de tests de Nuclei.

Plus ils sont à jour, plus vos analyses seront pertinentes.

La structure d’une commande Nuclei

Une commande Nuclei de base ressemble à ceci :

nuclei -u https://exemple.fr
  • nuclei lance l’outil, 
  • -u indique une URL cible,
  • https://exemple.fr est la cible à analyser.

Le paramètre -u signifie “URL”. Vous pouvez le voir comme une façon de dire à Nuclei :

“Voici le site que je veux analyser.”

Pour scanner une liste d’URL depuis un fichier, on utilise plutôt -l :

nuclei -l urls.txt

Ici, urls.txt doit contenir une URL par ligne :

https://site1.fr
https://site2.fr
https://site3.fr

Cette approche est très pratique lorsque vous devez auditer plusieurs domaines ou sous-domaines que vous administrez.

Lancer votre premier scan Nuclei

Pour votre premier test, utilisez une cible que vous contrôlez. Cela peut être un site de test local, un environnement de développement ou un domaine personnel.

Par exemple :

nuclei -u https://votre-site.fr

Nuclei va alors charger les templates disponibles et lancer différentes vérifications.

Selon le nombre de templates, la vitesse de votre connexion et la cible analysée, cela peut prendre un certain temps.

Les résultats s’affichent sous une forme proche de celle-ci :

[tech-detect:wordpress] [http] [info] https://votre-site.fr

Cette ligne signifie que Nuclei a détecté quelque chose. Ici, il pourrait s’agir d’une technologie, avec une sévérité informative.

La structure est assez simple :

[nom-du-template] [protocole] [sévérité] cible

Avec un peu de pratique, vous apprendrez vite à repérer les résultats importants.

Scanner une liste d’URL

Dans un audit réel, vous aurez souvent plusieurs cibles.

Créez un fichier urls.txt :

https://exemple1.fr
https://exemple2.fr
https://exemple3.fr

Puis lancez :

nuclei -l urls.txt

Nuclei va lire chaque ligne du fichier et lancer les tests sur chaque URL.

Pour un débutant, cette méthode est très pratique, car elle vous permet de préparer vos cibles proprement. Vous évitez ainsi de lancer des commandes au hasard.

Si vous travaillez sur vos propres sites, vous pouvez par exemple créer un fichier avec votre site principal, votre blog, votre boutique, vos sous-domaines de test et vos environnements de préproduction.

Encore une fois, vérifiez bien que vous avez le droit de scanner chaque cible.

Utiliser un dossier de templates précis

Par défaut, Nuclei peut utiliser beaucoup de templates. C’est pratique, mais parfois trop large.

Vous pouvez choisir un dossier précis avec l’option -t.

Par exemple, pour utiliser un dossier de templates spécifique :

nuclei -u https://votre-site.fr -t http/exposures/

Cette commande demande à Nuclei de scanner votre cible avec les templates liés aux expositions HTTP.

C’est utile lorsque vous voulez répondre à une question précise :

“Est-ce que mon site expose des fichiers sensibles ?”

Autre exemple :

nuclei -u https://votre-site.fr -t http/technologies/

Ici, vous cherchez plutôt à détecter les technologies utilisées.

En limitant les templates, vous obtenez souvent des résultats plus lisibles. Pour apprendre, c’est une excellente méthode.

Tableau récapitulatif des principaux dossiers de templates Nuclei

C’est un excellent support pour les débutants qui souhaitent comprendre rapidement à quoi sert chaque catégorie.

DossierUtilitéExemple de détection
http/Tests et audits des applications webPages d’administration, fichiers sensibles, vulnérabilités web
dns/Analyse des enregistrements DNSMauvaises configurations DNS, transferts de zone
ssl/Vérification SSL/TLSCertificats expirés, protocoles faibles
network/Analyse réseau bas niveauServices exposés, bannières de serveurs
javascript/Analyse de fichiers JavaScriptClés API exposées, endpoints cachés
headless/Analyse nécessitant un navigateurApplications SPA, contenus générés en JavaScript
code/Analyse de code source exposéSecrets, tokens, mauvaises pratiques
workflows/Enchaînement automatique de plusieurs templatesAudit complet d’une technologie
file/Analyse de fichiers locauxVérification de configuration ou de contenu
cloud/Audit des services cloudAWS, Azure, GCP mal configurés
iot/Audit d’objets connectésInterfaces d’administration IoT
exposures/Recherche d’informations sensibles exposées.env, sauvegardes, fichiers de configuration
misconfiguration/Détection d’erreurs de configurationServeurs mal sécurisés
technologies/Identification des technologiesWordPress, Laravel, Apache, nginx
cves/Recherche de vulnérabilités connues (CVE)Log4Shell, CVE WordPress, CVE Apache
vulnerabilities/Vulnérabilités généralesRCE, XSS, SQLi, LFI, SSRF
default-logins/Identifiants par défautAdmin/Admin, root/root
panels/Interfaces d’administration exposéesphpMyAdmin, Plesk, Jenkins
takeovers/Risques de sous-domaines abandonnésSubdomain Takeover
token-spray/Recherche de secrets exposésTokens GitHub, AWS, Slack
fuzzing/Tests de paramètres et endpointsDécouverte de fonctionnalités cachées

Les dossiers les plus utiles pour débuter

PrioritéDossierPourquoi commencer par lui ?
⭐⭐⭐⭐⭐technologies/Comprendre rapidement ce qui tourne sur un site
⭐⭐⭐⭐⭐exposures/Trouver les fichiers sensibles exposés
⭐⭐⭐⭐⭐misconfiguration/Détecter les erreurs de configuration fréquentes
⭐⭐⭐⭐cves/Vérifier les vulnérabilités connues
⭐⭐⭐⭐ssl/Contrôler les certificats et le chiffrement
⭐⭐⭐⭐panels/Identifier les interfaces d’administration
⭐⭐⭐default-logins/Vérifier les identifiants par défaut
⭐⭐⭐takeovers/Détecter les sous-domaines vulnérables

Exemple de commandes associées

Scanner uniquement les technologies :

nuclei -u https://exemple.fr -t http/technologies/

Scanner les fichiers sensibles exposés :

nuclei -u https://exemple.fr -t http/exposures/

Scanner les mauvaises configurations :

nuclei -u https://exemple.fr -t http/misconfiguration/

Scanner les CVE connues :

nuclei -u https://exemple.fr -t http/cves/

Pour un premier audit sur vos propres sites, le trio technologies → exposures → misconfiguration est généralement le plus pédagogique et le plus pertinent pour comprendre concrètement la puissance de Nuclei.

Filtrer par niveau de sévérité

Si vous lancez beaucoup de scans, les résultats peuvent vite devenir nombreux.

Pour vous concentrer sur les résultats importants, vous pouvez filtrer par sévérité avec -severity.

Par exemple :

nuclei -u https://votre-site.fr -severity high,critical

Cette commande affiche uniquement les résultats dont la sévérité est high ou critical.

Pour un premier audit rapide, cela peut être utile. Toutefois, ne négligez pas toujours les niveaux plus faibles. Une information low ou medium peut devenir importante lorsqu’elle est combinée avec d’autres éléments.

En sécurité, le contexte compte énormément. Une petite fuite d’information peut parfois aider un attaquant à préparer une attaque plus sérieuse.

Exporter les résultats dans un fichier

Lire les résultats dans le terminal, c’est bien. Les conserver, c’est mieux.

Pour enregistrer les résultats dans un fichier texte, utilisez -o :

nuclei -u https://votre-site.fr -o resultats-nuclei.txt

Après le scan, vous pouvez ouvrir le fichier :

cat resultats-nuclei.txt

Ou simplement l’ouvrir avec votre éditeur de texte.

Si vous souhaitez exploiter les résultats dans un outil, un script ou un tableau de bord, le format JSON est très pratique :

nuclei -u https://votre-site.fr -jsonl -o resultats-nuclei.jsonl

Le format JSONL signifie “JSON Lines”. Chaque ligne du fichier est un objet JSON indépendant.

Cela peut paraître un peu technique au début, mais c’est très utile pour automatiser des traitements.

Exemple simplifié d’une ligne JSON :

{
  "template-id": "tech-detect",
  "info": {
    "name": "Technology Detection",
    "severity": "info"
  },
  "host": "https://votre-site.fr"
}

Avec ce type de sortie, vous pouvez ensuite filtrer, trier, importer ou analyser les résultats plus facilement.

Lire et interpréter les résultats

L’un des pièges classiques avec les scanners de sécurité est de prendre chaque résultat pour une vérité absolue.

Nuclei est puissant, mais il ne réfléchit pas à votre place.

  • Il applique juste des règles.

Quand Nuclei affiche un résultat, vous devez vous poser quelques questions :

  1. Est-ce que la cible est bien la bonne ?
  2. Est-ce que le résultat est reproductible ?
  3. Est-ce que la vulnérabilité concerne réellement votre version ?
  4. Est-ce que la configuration de votre site rend l’exploitation possible ?
  5. Est-ce que le niveau de sévérité est adapté à votre contexte ?

Prenons un exemple…

Nuclei détecte une interface d’administration accessible. Cela peut être normal si cette interface est protégée correctement. En revanche, si elle est ouverte au public, sans restriction, avec une version obsolète ou une authentification faible, le risque devient plus sérieux.

Un bon audit ne consiste donc pas à copier-coller les résultats de l’outil. Il consiste à comprendre ce qu’ils signifient.

Comprendre les faux positifs

Un faux positif est un résultat qui semble indiquer un problème, mais qui n’en est pas réellement un.

Par exemple, un template peut chercher un mot précis dans une page. Si ce mot apparaît dans un contexte inattendu, Nuclei peut penser qu’il a trouvé quelque chose, alors que ce n’est pas le cas.

Les faux positifs font partie de la vie des outils de sécurité. Même les meilleurs scanners peuvent en produire.

  • Votre rôle consiste donc à tout vérifier.

Pour cela, vous pouvez ouvrir l’URL concernée, lire la réponse HTTP, vérifier les versions, consulter les journaux du serveur ou reproduire le test dans un environnement contrôlé.

Ne supprimez pas un résultat trop vite, mais ne le considérez pas non plus comme une catastrophe sans preuve.

Nuclei vous montre des portes à inspecter. À vous de vérifier si elles sont vraiment ouvertes, entrouvertes, ou simplement dessinées sur le mur.

Scanner uniquement certaines technologies

Nuclei peut aussi servir à détecter des technologies.

C’est utile lorsque vous auditez votre propre parc web et que vous voulez savoir quels sites utilisent WordPress, nginx, Apache, Laravel, PHP, ou d’autres composants.

Une commande possible :

nuclei -u https://votre-site.fr -tags tech

L’option -tags permet d’utiliser des templates associés à certains mots-clés.

Les tags sont très pratiques, car ils permettent de cibler une famille de templates sans forcément connaître exactement le chemin du dossier.

Autre exemple :

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 ?
nuclei -l urls.txt -tags wordpress

Cette commande cherche des éléments liés à WordPress sur les cibles listées dans urls.txt.

Pour un développeur web, cela peut être très utile. Vous pouvez repérer des installations oubliées, des sites encore actifs, ou des technologies présentes là où vous ne les attendiez plus.

Limiter la vitesse des scans

Lorsque vous lancez un scan, Nuclei envoie des requêtes vers vos cibles.

Si vous scannez trop vite, vous pouvez surcharger un petit serveur, déclencher des protections, ou gêner des utilisateurs.

Pour éviter cela, vous pouvez limiter le rythme.

Par exemple :

nuclei -u https://votre-site.fr -rate-limit 5

Cette commande limite le nombre de requêtes par seconde.

C’est une bonne pratique, surtout sur des serveurs mutualisés, des sites en production ou des environnements sensibles.

N’oubliez pas : un audit de sécurité doit améliorer la situation, pas transformer votre site en crêpe bretonne sous un rouleau compresseur.

Utiliser Nuclei avec des sous-domaines

Dans un audit plus complet, vous pouvez avoir besoin d’analyser plusieurs sous-domaines.

Par exemple :

https://www.exemple.fr
https://blog.exemple.fr
https://admin.exemple.fr
https://api.exemple.fr

Vous pouvez placer ces URL dans un fichier (depuis Nano, l’éditeur de fichier du terminal) :

nano sous-domaines.txt

Puis ajouter vos cibles :

https://www.exemple.fr
https://blog.exemple.fr
https://api.exemple.fr

Ensuite :

nuclei -l sous-domaines.txt -severity medium,high,critical -o audit-sous-domaines.txt

Cette commande :

  1. scanne plusieurs sous-domaines,
  2. affiche uniquement les résultats importants,
  3. puis enregistre le rapport dans un fichier.

Cette méthode est simple, mais déjà très utile pour organiser votre travail.

Associer Nuclei à httpx

Nuclei est souvent utilisé avec d’autres outils de ProjectDiscovery.

Par exemple, httpx permet de vérifier quelles URL répondent réellement en HTTP ou HTTPS. C’est pratique lorsque vous avez une liste de domaines ou sous-domaines, mais que vous ne savez pas lesquels sont actifs.

👉 Consultez notre tutoriel complet sur httpx.

Exemple de workflow :

cat domaines.txt | httpx -silent > urls-actives.txt

Cette commande lit domaines.txt, teste les services web actifs, puis enregistre les résultats dans urls-actives.txt.

Ensuite :

nuclei -l urls-actives.txt -severity high,critical

Ici, Nuclei analyse uniquement les URL qui répondent vraiment.

  • Cette logique évite de perdre du temps sur des cibles inaccessibles.

Pour un débutant, retenez surtout l’idée générale : un bon audit se prépare. On découvre d’abord les cibles, on vérifie qu’elles répondent, puis on lance des tests adaptés.

Associer Nuclei à subfinder

subfinder est un autre outil de ProjectDiscovery. Il sert à découvrir des sous-domaines.

👉 Consultez notre tutoriel complet sur SubFinder.

Dans un environnement autorisé, par exemple sur votre propre domaine, vous pouvez faire :

subfinder -d exemple.fr -silent > sous-domaines.txt

Cette commande recherche des sous-domaines associés à exemple.fr.

Ensuite, vous pouvez vérifier lesquels répondent en HTTP :

cat sous-domaines.txt | httpx -silent > urls-actives.txt

Puis lancer Nuclei :

nuclei -l urls-actives.txt -severity medium,high,critical -o rapport.txt

Ce type de chaîne est très courant en analyse de sécurité automatisée.

Subfinder, HTTPX et Nuclei

Mais attention : plus vous automatisez, plus vous devez être rigoureux. Vérifiez toujours le périmètre autorisé. Ne scannez pas des domaines qui ne vous appartiennent pas.

Créer un premier template Nuclei

Créer ses propres templates est l’une des forces de Nuclei.

Pour débuter, nous allons créer un template très simple. Il ne cherchera pas une faille dangereuse. Il vérifiera simplement si une page contient un texte précis.

Créez un fichier :

nano mon-template.yaml

Ajoutez ceci :

id: detection-page-accueil

info:
  name: Détection simple de page d'accueil
  author: crea-blog
  severity: info
  description: Vérifie si une page contient un texte attendu.

http:
  - method: GET
    path:
      - "{{BaseURL}}/"

    matchers:
      - type: word
        words:
          - "Bienvenue"

Voyons ce fichier étape par étape.

  • La ligne id donne un identifiant unique au template. Il doit être clair et sans espaces.
  • Le bloc info contient les informations descriptives : nom du template, auteur, sévérité et description.
  • Le bloc http indique que le template utilise le protocole HTTP.
  • La méthode GET signifie que Nuclei va demander une page, comme votre navigateur lorsque vous ouvrez une URL.
  • La partie path indique le chemin testé. Ici, {{BaseURL}}/ représente la racine du site.
  • Enfin, matchers définit ce que Nuclei doit chercher dans la réponse. Ici, il cherche le mot Bienvenue.

Pour lancer ce template :

nuclei -u https://votre-site.fr -t mon-template.yaml

Si la page contient le mot Bienvenue, Nuclei affichera un résultat.

Ce premier exemple est volontairement simple. Il sert à comprendre le principe. Ensuite, vous pourrez créer des templates plus utiles, par exemple pour vérifier la présence d’un en-tête HTTP, d’une page spécifique ou d’une configuration attendue.

Exemple de template pour vérifier un en-tête HTTP

Les en-têtes HTTP donnent des informations importantes sur la réponse d’un serveur.

Par exemple, certains en-têtes de sécurité peuvent aider à protéger un site contre certaines attaques.

Créons un template qui vérifie la présence d’un en-tête X-Frame-Options.

id: x-frame-options-check

info:
  name: Vérification de l'en-tête X-Frame-Options
  author: crea-blog
  severity: low
  description: Vérifie si l'en-tête X-Frame-Options est présent dans la réponse HTTP.

http:
  - method: GET
    path:
      - "{{BaseURL}}/"

    matchers:
      - type: word
        part: header
        words:
          - "X-Frame-Options"

Ici, la ligne importante est :

part: header

Elle indique que Nuclei doit chercher dans les en-têtes HTTP, et non dans le contenu HTML de la page.

Pour lancer ce test :

nuclei -u https://votre-site.fr -t x-frame-options-check.yaml

Si l’en-tête est présent, Nuclei le signale.

Attention : ce template indique une présence, pas une absence. Pour vérifier correctement les en-têtes manquants, il faut écrire des templates plus précis ou utiliser des templates existants adaptés. Mais pour apprendre, cet exemple est parfait.

Les matchers dans Nuclei

Les matchers permettent à Nuclei de décider si une réponse correspond à ce que l’on cherche.

Un matcher peut vérifier un mot, un code de statut HTTP, une expression régulière ou d’autres conditions.

Exemple avec un code de statut :

id: page-admin-accessible

info:
  name: Page admin accessible
  author: crea-blog
  severity: medium
  description: Vérifie si une page /admin répond avec un code 200.

http:
  - method: GET
    path:
      - "{{BaseURL}}/admin"

    matchers:
      - type: status
        status:
          - 200

Ici, Nuclei teste /admin et vérifie si le serveur répond avec le code 200.

Le code HTTP 200 signifie généralement “OK”. Autrement dit, la page existe et répond correctement.

Mais attention : une page /admin accessible n’est pas forcément une vulnérabilité. Elle peut être protégée par une authentification. Ce template donne simplement une information à vérifier.

Les extractors dans Nuclei

Les extractors servent à extraire des informations depuis une réponse.

Par exemple, vous pouvez extraire une version, une adresse e-mail, une clé publique ou une chaîne spécifique.

Voici un exemple très simple :

id: extraction-title-html

info:
  name: Extraction du titre HTML
  author: crea-blog
  severity: info
  description: Extrait le contenu de la balise title.

http:
  - method: GET
    path:
      - "{{BaseURL}}/"

    extractors:
      - type: regex
        part: body
        regex:
          - "<title>(.*?)</title>"

Ce template récupère le contenu de la balise <title>.

C’est utile pour apprendre, mais aussi pour faire de la reconnaissance technique. Dans un audit, les informations extraites peuvent aider à comprendre l’environnement.

Bonnes pratiques avec les templates personnalisés

Quand vous créez vos templates, gardez une règle simple :

  • un template doit être clair, précis et utile.

Évitez les templates trop vagues qui détectent tout et n’importe quoi. Plus une règle est floue, plus elle risque de générer des faux positifs.

Donnez toujours un nom explicite à vos templates. Ajoutez une description. Choisissez une sévérité réaliste. Testez votre template sur une cible de laboratoire avant de l’utiliser sur un environnement plus large.

Rangez aussi vos templates dans des dossiers cohérents.

Par exemple :

mes-templates/
├── detection-tech/
├── headers-security/
├── pages-sensibles/
└── audits-internes/

Cette organisation vous évitera de vous retrouver avec cinquante fichiers YAML dans un dossier nommé “test-final-vraiment-final-2”. Nous savons tous comment ça finit.

Un template pour extraire les adresses mail d’un site web

Voici un template YAML simple pour Nuclei afin d’extraire les adresses e-mail visibles dans le HTML d’une page :

id: extract-email-addresses

info:
  name: Extract Email Addresses
  author: crea-blog
  severity: info
  description: Extrait les adresses e-mail visibles dans le code HTML d'une page web.
  tags: exposure,email,osint

http:
  - method: GET
    path:
      - "{{BaseURL}}"

    extractors:
      - type: regex
        name: emails
        part: body
        regex:
          - "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}"

Commande d’utilisation :

nuclei -u https://exemple.fr -t extract-email-addresses.yaml

Pour scanner plusieurs URL :

nuclei -l urls.txt -t extract-email-addresses.yaml -o emails-trouves.txt

À utiliser uniquement sur vos propres sites ou avec autorisation.

Automatiser un scan Nuclei avec un script Bash

Une fois à l’aise avec les commandes, vous pouvez créer un petit script.

Créez un fichier :

nano audit-nuclei.sh

Ajoutez :

#!/bin/bash

# Fichier contenant les URL à scanner
CIBLES="urls.txt"

# Fichier de sortie avec la date du jour
SORTIE="rapport-nuclei-$(date +%Y-%m-%d).txt"

# Mise à jour des templates
echo "Mise à jour des templates Nuclei..."
nuclei -update-templates

# Lancement du scan
echo "Lancement du scan Nuclei..."
nuclei -l "$CIBLES" -severity medium,high,critical -o "$SORTIE"

# Message final
echo "Scan terminé. Rapport enregistré dans : $SORTIE"

Ce script fait plusieurs choses.

  1. Il définit le fichier de cibles,
  2. crée un nom de rapport avec la date du jour,
  3. met à jour les templates,
  4. puis lance un scan sur les niveaux mediumhigh et critical.

👉 Tout savoir sur les Script Shell.

Rendez le script exécutable grace à la commande chmod :

chmod +x audit-nuclei.sh

Puis lancez-le :

./audit-nuclei.sh

Ce petit script est simple, mais il vous fait déjà gagner du temps. C’est une première étape vers l’automatisation.

Utiliser Nuclei dans une routine d’audit

Pour un site web que vous maintenez, vous pouvez mettre en place une routine d’audit raisonnable.

Par exemple, une fois par semaine, vous pouvez mettre à jour Nuclei, mettre à jour les templates, scanner vos environnements autorisés, lire les résultats, corriger les problèmes importants et archiver le rapport.

L’objectif n’est pas de lancer un scan toutes les cinq minutes. L’objectif est de créer une habitude saine.

Un bon audit régulier ressemble à une visite de contrôle chez le dentiste. Ce n’est pas toujours le moment le plus fun de la semaine, mais vous êtes content de le faire avant que le problème devienne douloureux.

Erreurs fréquentes des débutants avec Nuclei

La première erreur est de scanner sans autorisation. C’est la plus importante. Même si Nuclei est facile à utiliser, vous devez respecter le cadre légal.

La deuxième erreur est d’utiliser des templates obsolètes. Si vos templates ne sont pas à jour, vous risquez de manquer des détections importantes ou d’obtenir des résultats moins fiables.

La troisième erreur est de croire tous les résultats sans vérification. Nuclei automatise la détection, pas le jugement humain.

La quatrième erreur est de lancer trop de tests d’un coup. Pour apprendre, mieux vaut commencer avec un petit périmètre, lire les résultats, comprendre, puis élargir progressivement.

La cinquième erreur est de négliger la documentation. Nuclei possède beaucoup d’options. Vous n’avez pas besoin de tout connaître dès le premier jour, mais prendre l’habitude de consulter l’aide est précieux.

Vous pouvez afficher l’aide avec :

nuclei -h

Cette commande liste les options disponibles.

Bonnes pratiques pour utiliser Nuclei efficacement

La première bonne pratique consiste à travailler sur un périmètre clair. Avant de scanner, notez les cibles autorisées.

La deuxième consiste à limiter la vitesse des scans si nécessaire. Un outil automatisé peut envoyer beaucoup de requêtes rapidement. Soyez prudent sur les sites en production.

La troisième consiste à conserver les rapports. Un rapport vous permet de comparer l’état d’un site dans le temps.

La quatrième consiste à vérifier manuellement les résultats importants. Un résultat critique mérite toujours une confirmation sérieuse.

La cinquième consiste à documenter vos corrections. Si Nuclei détecte une mauvaise configuration et que vous la corrigez, notez ce que vous avez modifié. Cela vous aidera plus tard.

Enfin, gardez une démarche progressive. Nuclei est un outil puissant, mais vous n’avez pas besoin de tout maîtriser en une journée.

Cas pratique : audit simple d’un site que vous possédez

Nous allons maintenant construire un mini projet réaliste.

Imaginons que vous possédez un site web et deux sous-domaines.

Vous voulez vérifier les technologies détectées, les vulnérabilités importantes, les fichiers exposés et obtenir un rapport propre.

Étape 1 : créer la liste des cibles

Créez un fichier :

nano cibles.txt

Ajoutez vos URL autorisées :

https://www.votre-site.fr
https://blog.votre-site.fr
https://api.votre-site.fr

Enregistrez le fichier.

Étape 2 : mettre à jour les templates

Avant de scanner :

nuclei -update-templates

Cette commande garantit que vous utilisez des templates récents.

Étape 3 : détecter les technologies

Lancez un premier scan informatif :

nuclei -l cibles.txt -tags tech -o technologies.txt

Ce rapport vous aide à savoir ce que Nuclei reconnaît sur vos sites.

Ouvrez le fichier :

cat technologies.txt

Analysez les résultats. Vous pouvez y trouver des informations utiles sur les CMS, frameworks, serveurs web ou outils détectés.

Étape 4 : rechercher les problèmes importants

Lancez ensuite un scan orienté vulnérabilités plus sérieuses :

nuclei -l cibles.txt -severity medium,high,critical -o vulnerabilites-importantes.txt

Ici, vous limitez l’affichage aux niveaux plus importants.

Lisez le rapport :

cat vulnerabilites-importantes.txt

Pour chaque résultat, prenez le temps de vérifier.

Ne corrigez pas à l’aveugle. Comprenez d’abord.

Étape 5 : chercher les fichiers exposés

Vous pouvez lancer un scan ciblé sur les expositions :

nuclei -l cibles.txt -t ~/nuclei-templates/http/exposures/ -o fichiers-exposes.txt

Ce rapport peut vous aider à repérer des fichiers sensibles accessibles publiquement.

Si un fichier sensible est réellement exposé, la correction peut consister à le supprimer, le déplacer hors du dossier public, corriger les permissions serveur ou ajouter une règle de blocage.

Étape 6 : produire un mini rapport

Créez un fichier de synthèse :

nano rapport-final.md

Vous pouvez structurer votre rapport ainsi :

# Rapport d'audit Nuclei

## Périmètre analysé

- https://www.votre-site.fr
- https://blog.votre-site.fr
- https://api.votre-site.fr

## Date de l'audit

2026-06-12

## Résultats importants

À compléter après vérification manuelle.

## Fichiers exposés

À compléter selon les résultats du fichier fichiers-exposes.txt.

## Corrections recommandées

À compléter selon les constats.

## Priorités

1. Corriger les risques critiques.
2. Traiter les risques élevés.
3. Vérifier les risques moyens.
4. Documenter les informations utiles.

Ce mini rapport vous force à transformer les résultats bruts en informations exploitables.

C’est une étape essentielle. Un scan sans analyse derrière, c’est un peu comme acheter un livre de cuisine et ne jamais faire la recette.

Exemple de script complet pour le cas pratique

Pour automatiser ce mini audit, vous pouvez créer un script :

#!/bin/bash

# Nom du fichier contenant les cibles autorisées
CIBLES="cibles.txt"

# Dossier de sortie
DOSSIER_RAPPORTS="rapports-nuclei"

# Date du jour
DATE=$(date +%Y-%m-%d)

# Création du dossier de rapports s'il n'existe pas
mkdir -p "$DOSSIER_RAPPORTS"

echo "Début de l'audit Nuclei..."

echo "Mise à jour des templates..."
nuclei -update-templates

echo "Détection des technologies..."
nuclei -l "$CIBLES" -tags tech -o "$DOSSIER_RAPPORTS/technologies-$DATE.txt"

echo "Recherche des vulnérabilités importantes..."
nuclei -l "$CIBLES" -severity medium,high,critical -o "$DOSSIER_RAPPORTS/vulnerabilites-$DATE.txt"

echo "Recherche des fichiers exposés..."
nuclei -l "$CIBLES" -t ~/nuclei-templates/http/exposures/ -o "$DOSSIER_RAPPORTS/expositions-$DATE.txt"

echo "Audit terminé."
echo "Les rapports sont disponibles dans le dossier : $DOSSIER_RAPPORTS"

Enregistrez ce fichier sous le nom :

audit-complet-nuclei.sh

Rendez-le exécutable :

chmod +x audit-complet-nuclei.sh

Puis lancez :

./audit-complet-nuclei.sh

Vous obtenez alors plusieurs fichiers de rapport datés.

Ce genre d’automatisation est simple, mais très utile pour suivre l’évolution de la sécurité de vos sites.

Aller plus loin avec Nuclei

Une fois les bases maîtrisées, vous pouvez explorer des usages plus avancés.

Vous pouvez apprendre à écrire des templates plus complexes, utiliser des workflows, combiner Nuclei avec des outils de reconnaissance, intégrer les scans dans un pipeline CI/CD, ou transformer les sorties JSON en tableaux de bord.

Mais ne vous précipitez pas.

La vraie progression vient de la pratique régulière. Prenez une cible de test, écrivez un template simple, lancez un scan, lisez la réponse, modifiez le template, recommencez.

C’est exactement comme apprendre le développement web. On commence avec une page HTML toute simple, puis un peu de CSS, puis du JavaScript, puis un vrai projet. En sécurité, c’est pareil : on construit ses compétences par couches.


Nuclei est-il gratuit ?

Oui. Nuclei est un outil open source développé par ProjectDiscovery. Vous pouvez l’utiliser gratuitement pour vos audits de sécurité, vos environnements de test et vos projets personnels.

Nuclei peut-il détecter toutes les vulnérabilités d’un site web ?

Non. Nuclei permet de détecter de nombreuses vulnérabilités connues et erreurs de configuration, mais aucun scanner ne peut tout trouver. Il doit être utilisé comme un outil d’aide à l’audit, complété par des vérifications manuelles.

Faut-il savoir programmer pour utiliser Nuclei en CLI ?

Non. Les commandes de base sont accessibles aux débutants. En revanche, apprendre progressivement à lire ou créer des templates YAML permet d’exploiter pleinement les possibilités offertes par Nuclei.


Nuclei CLI est un excellent point d’entrée pour découvrir l’analyse de sécurité automatisée. Il permet de scanner des sites, de détecter des vulnérabilités connues, de repérer des erreurs de configuration, d’identifier des technologies et de structurer une première routine d’audit.

Mais son vrai intérêt ne se limite pas à la commande que vous tapez dans le terminal.

Nuclei vous apprend à raisonner comme un auditeur : définir un périmètre, choisir des tests adaptés, lire les résultats, vérifier les alertes, prioriser les corrections et documenter ce que vous trouvez.

Si vous débutez, avancez simplement. Installez l’outil, lancez un premier scan sur un site que vous possédez, explorez les templates, puis créez votre première règle personnalisée. Ne cherchez pas à tout maîtriser immédiatement. Ce qui compte, c’est de pratiquer proprement, légalement et régulièrement.

La cybersécurité n’est pas une affaire de magie noire réservée à quelques experts enfermés dans une cave avec trois écrans verts. C’est une discipline méthodique, progressive et passionnante. Avec Nuclei, vous avez entre les mains un outil puissant pour commencer à automatiser vos vérifications et renforcer vos projets web avec plus de sérénité.