0Pricing
Ethical Hacking Academy · Leçon

Fuzzing pour provoquer des plantages

Trouver le décalage

Fuzzing pour provoquer des plantages est une leçon Ethical Hacking Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Ethical Hacking Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Ethical Hacking Academy comprend 4 leçons au total.

Qu'est-ce que le test par mutations ?

Le test par mutations consiste à envoyer à un programme des données malformées ou trop volumineuses afin de provoquer un comportement inattendu, notamment un plantage. Un plantage signale souvent un problème de corruption mémoire.

Pour les dépassements de tampon, le premier objectif est de faire planter la cible afin de confirmer l'existence d'un dépassement.

Le processus

Le processus classique d'exploitation est le suivant :

  • Tester par mutations pour faire planter le programme.
  • Trouver le décalage exact jusqu'à l'adresse de retour.
  • Contrôler EIP.
  • Rediriger vers le code shell.

Cette leçon couvre les deux premières étapes.

Attacher un débogueur

Pour observer les plantages, attachez un débogueur (par exemple Immunity Debugger ou x64dbg sous Windows, ou GDB sous Linux) à la cible.

Lorsque le programme plante, le débogueur affiche l'état des registres, en particulier EIP, ce qui permet de déterminer si nous avons écrasé l'adresse de retour.

Envoyer des données de taille croissante

Un testeur rudimentaire envoie des chaînes de plus en plus longues jusqu'au plantage du programme. Un point de départ courant consiste à envoyer de nombreux caractères « A » (0x41).

Si EIP affiche 41414141 après le plantage, vous avez confirmé que vous contrôlez l'adresse de retour.

python -c 'print("A"*2000)' | ./vuln

Confirmer le plantage

Lorsque l'application plante et qu'EIP vaut 41414141, le dépassement a atteint l'adresse de retour sauvegardée.

Mais vous ne savez pas encore exactement combien d'octets précèdent EIP. Envoyer toujours le même octet indique que vous contrôlez EIP, mais pas où il se trouve.

Trouver le décalage : motifs cycliques

Pour trouver le décalage précis, envoyez un motif unique et non répétitif au lieu de caractères « A » répétés. Chaque fenêtre de 4 octets est distincte, de sorte que la valeur arrivée dans EIP identifie le décalage.

Metasploit fournit pattern_create.rb à cet effet.

msf-pattern_create -l 2000

Lire le décalage

Après le plantage provoqué par le motif, notez la valeur présente dans EIP. Donnez-la à pattern_offset.rb, qui renvoie le nombre exact d'octets précédant EIP.

Ce décalage correspond à la taille du remplissage placé avant les octets de l'adresse de retour.

msf-pattern_offset -l 2000 -q 39654138

Vérifier le décalage

Vérifiez toujours le résultat. Construisez une entrée composée de offset octets « A », suivis de quatre octets « B » (0x42). Si EIP devient 42424242, le décalage est exact.

Cette confirmation vous évite de perdre des heures à rechercher plus tard une erreur de quelques octets.

"A"*offset + "B"*4   # EIP should become 42424242

Identifier ESP

Après avoir contrôlé EIP, notez également vers quelle zone pointe ESP au moment du plantage. ESP pointe généralement juste après l'adresse de retour écrasée, dans la partie restante de votre tampon.

C'est à cet endroit que vous placerez plus tard le code shell.

Récapitulatif des outils

Parmi les outils utiles pour les tests par mutations et les motifs figurent :

  • Spike et boofuzz : testeurs par mutations de protocoles réseau.
  • pattern_create / pattern_offset : localisent le décalage d'EIP.
  • mona.py dans Immunity : automatise les tâches liées aux motifs, aux décalages et aux caractères interdits.
!mona pattern_create 2000

La reproductibilité est importante

Un plantage utile doit être reproductible. Enregistrez les données exactes qui le déclenchent, puis recommencez depuis un état propre afin de confirmer que le décalage reste stable.

Des plantages incohérents signifient souvent que le problème n'est pas un dépassement de pile net, ou qu'une condition (le moment, la longueur ou le contenu) varie d'une exécution à l'autre.

Vérification rapide

Rappelez-vous pourquoi un motif cyclique est plus efficace qu'une chaîne d'octets identiques.

Récapitulatif

Vous savez maintenant trouver le décalage du plantage :

  • Testez par mutations avec des données de taille croissante pour provoquer un plantage ; confirmez-le avec 41414141 dans EIP.
  • Utilisez un motif cyclique avec pattern_create / pattern_offset pour trouver le décalage exact.
  • Vérifiez avec le remplissage suivi de quatre octets « B » (42424242).
  • Notez vers quelle zone pointe ESP pour placer ultérieurement le code shell.

Ensuite, vous contrôlerez entièrement EIP et redirigerez l'exécution.

Questions Fréquemment Posées

La leçon « Fuzzing pour provoquer des plantages » est-elle gratuite ?

Oui — le texte complet de « Fuzzing pour provoquer des plantages » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Ethical Hacking Academy, passe à CoddyKit PRO. Le cours Ethical Hacking Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Fuzzing pour provoquer des plantages » ?

Trouver le décalage Tu pratiques Ethical Hacking Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Ethical Hacking Academy ?

Aucune expérience préalable n'est requise. Ethical Hacking Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Fuzzing pour provoquer des plantages » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Ethical Hacking Academy ?

Oui. Chaque leçon Ethical Hacking Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Mémoire et pile
  2. Fuzzing pour provoquer des plantages
  3. Contrôler EIP
  4. Shellcode et exploitation
← Retour à Ethical Hacking Academy