int main () {
caractères login_name [20];
printf (" Saisissez vos identifiants : ");
scanf ( "% s " , login_name ) ;
printf (" Buffer Overflow "); }
! ce code de base crée un tableau de caractères ( un mot, essentiellement ) a appelé " login_name " qui contiendra les entrées utilisateur. Notez que " login_name " est à seulement 20 caractères. Le programme demande ensuite à l'entrée de l'utilisateur et stocke les informations dans " login_name . "
2
Parce que le dépassement de mémoire tampon . Compiler le programme et exécutez-le . Lorsque l' invite, entrez un nom de connexion qui dépasse 20 caractères. Par exemple:
Entrez connexion: . " Entrée". C'est une longue phrase qui risquent de dépasser l'espace disponible dans la variable LOGIN
Hit Le message de sortie imprimera et le programme prendra fin. La variable a envahi l'espace tampon disponible dans la variable " login_name " . La question est alors , qu'est-ce qui s'est passé?
3
comprendre comment fonctionne la mémoire de l'ordinateur. Comme l'entrée utilisateur a été stockée dans " login_name , " l'information excès (tout caractère delà de 20 caractères) a été écrit dans la mémoire au-delà des limites de la variable. Que les données doivent être stockées quelque part . Dans ce cas , il est stocké dans la mémoire immédiatement adjacente à l'endroit où se trouve la variable " login_name " . En allant sur les limites de la variable de connexion, des données supplémentaires ( intentionnellement ou non) réécrit les données immédiatement à côté de la variable. Cela signifie que le pirate pourrait essentiellement réécrire le code , et changer la façon dont le code fonctionne , possédant essentiellement le système.
4
Réalisez vulnérabilités Linux. Linux est codé en C /C + + , et beaucoup de ses fonctionnalités de base nécessite la manipulation des chaînes de caractères. Cependant, de nombreuses distributions modernes de Linux protéger contre les cas de débordement de tampon dans les endroits où l'entrée de l'utilisateur est requise , que ce soit à travers la protection de la pile ou dynamiquement des tableaux de caractères de redimensionnement . Vulnérabilités existent encore : le débordement de tampon exploit USB découvert en 2011 en est un exemple . Dans le cas USB, une carte d'identité extra long USB peut déborder une variable système sous Linux.