Développement web, sécurité et IA

Théme de la semaine : Outils pentest

Hydra Pentest : Tester et hacker un formulaire de login web

Temps de lecture estimé : 7 minutes
Accueil CyberSécurité Hydra Pentest : Tester et hacker un formulaire de login web

Tester la sécurité d’un formulaire de login web est une étape incontournable lors d’un audit de cybersécurité. Grâce à Hydra, vous pouvez automatiser des tentatives d’authentification pour hacker afin de vérifier si un compte est protégé par un mot de passe suffisamment robuste. Encore faut-il comprendre comment construire correctement la commande.

Dans ce tutoriel, vous découvrirez pas à pas comment utiliser Hydra pour tester un formulaire de connexion web. Vous apprendrez à identifier les informations indispensables, à comprendre le rôle de chaque paramètre et à construire votre première commande, le tout avec des explications simples et accessibles, même si vous débutez en pentest.

  • Comprendre le fonctionnement d’un formulaire de login afin d’identifier les informations indispensables avant d’utiliser Hydra.
  • Savoir interpréter chaque paramètre d’une commande Hydra pour l’adapter facilement à différents formulaires de connexion.
  • Éviter les erreurs les plus courantes et adopter les bonnes pratiques pour réaliser des tests d’authentification et de pénétration dans un cadre légal et pédagogique.

Lorsqu’on découvre les outils de cybersécurité offensive, Hydra fait souvent partie des premiers logiciels que l’on rencontre. Il est capable d’automatiser des tentatives d’authentification sur de nombreux services, comme SSH, FTP ou encore un formulaire de connexion d’un site web.

Tester un hacker un formulaire de login

Qu’est-ce qu’Hydra ?

Hydra est un logiciel libre utilisé par les professionnels de la cybersécurité pour tester la robustesse des mécanismes d’authentification.

Son principe est simple : il essaie automatiquement une succession de mots de passe jusqu’à trouver celui qui permet de se connecter. Cette technique est appelée une attaque par force brute ou, plus précisément lorsqu’une liste de mots de passe est utilisée, une attaque par dictionnaire.

Utiliser Hydra sur un formulaire de login web ou formulaire de connexion

L’objectif est de vérifier si un mot de passe est trop faible ou trop facile à deviner.

Dans un audit de sécurité autorisé, Hydra permet ainsi de détecter rapidement les comptes vulnérables afin de corriger le problème avant qu’un véritable attaquant ne les exploite.

👉 Consultez notre tutoriel d’initiation à Hydra.

Les éléments nécessaires

Avant d’utiliser Hydra sur un formulaire de connexion, plusieurs informations sont indispensables :

  • l’adresse IP ou le nom du site cible (url)
  • le chemin de la page de connexion (par exemple /login)
  • le nom des champs du formulaire (contenu dans la balise name)
  • une liste de mots de passe (appelée wordlist) ;
  • un nom d’utilisateur.

👉 Pour les wordlists :

Comprendre la syntaxe générale

Voici une commande typique :

hydra -l <username> -P /chemin/vers/la/wordlist <ip_cible> http-post-form "/CHEMIN:CHAMP_UTILISATEUR=^USER^&CHAMP_MOTDEPASSE=^PASS^:MESSAGE_D_ERREUR"

À première vue, cette ligne peut sembler impressionnante. Pourtant, elle est composée de plusieurs éléments très simples.

Le nom d’utilisateur

-l <username>

L’option -l signifie login.

  • Elle indique à Hydra quel utilisateur doit être testé.

Remplacez <username> par un pseudo. Par exemple Admin, Alban, …

hydra -l Alban -P /chemin/vers/la/wordlist <ip_cible> http-post-form "/CHEMIN:CHAMP_UTILISATEUR=^USER^&CHAMP_MOTDEPASSE=^PASS^:MESSAGE_D_ERREUR"

Dans notre exemple, Hydra essaiera tous les mots de passe pour l’utilisateur Alban.

Si vous souhaitez tester plusieurs utilisateurs, il existe également l’option -L, qui permet de fournir une liste complète de noms d’utilisateurs.

La liste de mots de passe

-P /chemin/vers/la/wordlist

Le P majuscule indique à Hydra où se trouve la liste des mots de passe à tester.

Une wordlist est simplement un fichier texte contenant un mot de passe par ligne.

Par exemple :

azerty
bonjour
motdepasse
soleil123

Hydra lira ce fichier ligne après ligne jusqu’à trouver un mot de passe valide ou jusqu’à atteindre la fin de la liste.

La cible

Ensuite vient l’adresse de la machine :

<ip_cible>

Il peut s’agir d’une adresse IP :

192.168.1.50

ou d’un nom de domaine :

exemple.fr

Dans un laboratoire, cette adresse est généralement fournie dès le début de l’exercice.

Le module utilisé

Hydra sait dialoguer avec de nombreux protocoles.

Pour un formulaire web, on utilise :

http-post-form

La majorité des formulaires de connexion envoient leurs informations grâce à une requête HTTP POST.

Hydra va donc reproduire exactement ce qu’un navigateur ferait lorsqu’un utilisateur clique sur le bouton Connexion.

👉 Pour aller plus loin : Analyser les en-têtes HTTP

La partie la plus importante

Le dernier argument est souvent celui qui fait peur :

"/CHEMIN:CHAMP_UTILISATEUR=^USER^&CHAMP_MOTDEPASSE=^PASS^:MESSAGE_D_ERREUR"

En réalité, il est composé de trois parties séparées par des deux-points.

Première partie : le chemin

/CHEMIN

Il s’agit de l’adresse de la page qui reçoit les informations.

Par exemple :

/login

ou

/auth

Le chemin correspond à l’adresse de la page qui reçoit les informations envoyées par le formulaire de connexion. Il ne s’agit pas forcément de la page affichée dans votre navigateur.

Par exemple, si vous vous connectez depuis http://exemple.com/login, le formulaire peut envoyer les données vers /login/auth ou /connexion.

Dans la majorité des cas, le chemin est indiqué dans l’attribut action du formulaire.

<form action="/login" method="post">
    <input type="text" name="username">
    <input type="password" name="password">
</form>

Ici, le chemin à utiliser avec Hydra est :

/login

Autre exemple :

<form action="/auth/connexion.php" method="post">

Le chemin devient :

/auth/connexion.php

En revanche, certains sites modernes utilisent JavaScript pour envoyer les informations sans utiliser directement l’attribut action. Celui-ci peut alors être vide :

<form action="">

ou même absent :

<form id="loginForm">

Dans ce cas, le plus simple est d’ouvrir les outils de développement (F12), puis l’onglet Network, et de cliquer sur Connexion avec de faux identifiants.

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 ?

Vous verrez alors la véritable URL vers laquelle le navigateur envoie la requête HTTP POST. C’est cette URL qu’il faudra utiliser avec Hydra.

Hydra saura ainsi où envoyer les identifiants.

Deuxième partie : les champs du formulaire

Prenons un exemple :

username=^USER^&password=^PASS^

Cette partie reproduit exactement les données envoyées par le navigateur.

Les textes ^USER^ et ^PASS^ sont des variables spéciales.

À chaque tentative, Hydra remplacera automatiquement :

  • ^USER^ par le nom d’utilisateur ;
  • ^PASS^ par le mot de passe en cours de test.

Par exemple, si le mot de passe testé est :

bonjour123

Hydra enverra :

username=alban&password=bonjour123

Puis il passera au mot de passe suivant.

Comment connaître le nom des champs ?

  • Il suffit d’observer le formulaire.

Avec les outils de développement du navigateur (touche F12), vous pouvez afficher le code HTML.

Un formulaire ressemble souvent à ceci :

<input name="username">
<input name="password">

Les valeurs du paramètre name sont justement celles que Hydra devra utiliser.

Comment savoir si la connexion échoue ?

Hydra doit être capable de distinguer une tentative réussie d’une tentative ratée.

Pour cela, on lui indique un texte affiché lorsque le mot de passe est incorrect :

Invalid password

ou

Login failed

Hydra recherchera cette phrase dans la réponse du serveur.

  • Si elle apparaît, cela signifie que la tentative a échoué.
  • Si elle disparaît, Hydra considère qu’il a probablement trouvé les bons identifiants.

Une méthode simple pour récupérer ces informations

La première fois, beaucoup de débutants cherchent au hasard. Il existe pourtant une méthode très efficace.

Ouvrez les outils de développement du navigateur puis l’onglet Network.

  • Essayez une connexion avec un faux mot de passe.

Vous pourrez alors observer :

  • la page appelée
  • les paramètres envoyés
  • le message retourné par le serveur

En quelques secondes, vous obtenez toutes les informations nécessaires pour construire votre commande Hydra.

Comprendre le déroulement d’une attaque

Une fois la commande lancée, Hydra procède toujours de la même manière.

  1. Il envoie un premier mot de passe.
  2. Si la connexion échoue, il lit la réponse du serveur.
  3. Puis il passe automatiquement au mot de passe suivant.

Le processus continue jusqu’à :

  • trouver un mot de passe valide
  • ou terminer toute la wordlist.

Cette automatisation explique pourquoi Hydra est beaucoup plus rapide qu’un humain.

Les erreurs les plus fréquentes

Lorsque Hydra ne fonctionne pas, le problème ne vient généralement pas du logiciel.

Les erreurs proviennent souvent d’une mauvaise configuration.

Les plus courantes sont :

  • un mauvais chemin vers le formulaire
  • un nom de champ incorrect
  • une faute dans le message d’erreur
  • une wordlist inexistante
  • un mauvais protocole

Avant de relancer Hydra, prenez toujours quelques minutes pour vérifier chacun de ces éléments.

Les limites d’Hydra

Hydra est un excellent outil d’apprentissage, mais il ne peut pas contourner toutes les protections.

Aujourd’hui, de nombreux sites utilisent :

  • un CAPTCHA
  • une authentification à deux facteurs (2FA)
  • un blocage après plusieurs échecs
  • une limitation du nombre de tentatives

Ces mécanismes rendent les attaques par dictionnaire beaucoup plus difficiles, voire impossibles.

C’est justement pour cette raison qu’ils sont fortement recommandés pour sécuriser un formulaire de login.

Un outil réservé aux environnements autorisés

Hydra est un outil professionnel.

Il doit uniquement être utilisé :

  • dans un laboratoire d’entraînement comme DVWA par exemple
  • sur une machine virtuelle personnelle
  • ou dans le cadre d’un audit de sécurité autorisé.

Tester un site internet sans l’accord de son propriétaire constitue une activité illégale dans de nombreux pays.

En cybersécurité, disposer d’un bon outil ne suffit pas : il faut également respecter le cadre légal et éthique dans lequel il est utilisé.

FAQ : Hydra et les formulaires de connexion

Hydra peut-il tester n’importe quel formulaire de login ?

Non. Hydra fonctionne avec de nombreux formulaires de connexion, à condition de connaître le chemin de la page, les noms des champs et le message affiché en cas d’échec. En revanche, certaines protections comme les CAPTCHA ou l’authentification à deux facteurs peuvent empêcher son fonctionnement.

À quoi sert une wordlist dans Hydra ?

Une wordlist est un fichier contenant une liste de mots de passe. Hydra les teste automatiquement les uns après les autres jusqu’à trouver une combinaison valide ou atteindre la fin de la liste. La qualité de cette liste influence directement l’efficacité du test.


Comprendre Hydra, ce n’est pas seulement apprendre un nouvel outil de force brute. C’est surtout découvrir comment fonctionne réellement un mécanisme d’authentification et pourquoi un mot de passe faible représente un risque important.

Une fois cette première étape maîtrisée, vous pourrez explorer d’autres fonctionnalités d’Hydra, tester différents protocoles comme SSH ou FTP, puis découvrir des outils complémentaires utilisés lors des audits de sécurité.

Vous comprendrez alors que le pentest ne consiste pas uniquement à lancer des commandes, mais avant tout à observer, analyser et comprendre le fonctionnement des applications avant de chercher à les évaluer.

👉 Pour aller plus loin avec Hydra : Découvrez comment tester et craquer une connexion SSH