Test de sécurité - débordements de tampon

Un débordement de tampon se produit lorsqu'un programme tente de stocker plus de données dans une zone de stockage de données temporaire (tampon) qu'il ne devait en contenir. Puisque les tampons sont créés pour contenir une quantité finie de données, les informations supplémentaires peuvent déborder dans les tampons adjacents, corrompant ainsi les données valides qui y sont conservées.

Exemple

Voici un exemple classique de buffer overflow. Il illustre un simple dépassement de mémoire tampon qui est provoqué par le premier scénario dans lequel s'appuie sur des données externes pour contrôler son comportement. Il n'y a aucun moyen de limiter la quantité de données que l'utilisateur a entrées et le comportement du programme dépend du nombre de caractères que l'utilisateur a mis à l'intérieur.

...
   char bufr[BUFSIZE]; 
   gets(bufr);
   ...

Mains allumées

Step 1- Nous devons nous connecter avec le nom et le numéro de chambre pour accéder à Internet. Voici l'instantané du scénario.

Step 2 - Nous allons également activer "Afficher les champs de formulaire cachés" dans Burp Suite comme indiqué ci-dessous -

Step 3- Maintenant, nous envoyons une entrée dans le champ nom et numéro de chambre. Nous essayons également d'injecter un nombre assez important dans le champ du numéro de chambre.

Step 4- Les champs masqués sont affichés comme indiqué ci-dessous. Nous cliquons sur accepter les conditions.

Step 5 - L'attaque est réussie de telle sorte qu'à la suite d'un dépassement de mémoire tampon, il a commencé à lire les emplacements de mémoire adjacents et affiché à l'utilisateur comme indiqué ci-dessous.

Step 6- Maintenant, connectons-nous en utilisant les données affichées. Après la journalisation, le message suivant s'affiche -

Mécanismes préventifs

  • Révision du code
  • Formation développeur
  • Outils du compilateur
  • Développer des fonctions Safe
  • Numérisation périodique