Ceci est une ancienne révision du document !


Le fonctionnement général d'un buffer overflow est de faire exécuter un code arbitraire par un programme en écrivant dans un buffer plus de données qu'il ne peut en contenir.

Lorsque vous lancez un programme, l'OS lui attribut de l’espace mémoire pour travailler.
La mémoire s’organise via plusieurs registres, dont le plus important: EIP pour Extended Instruction Pointer.
C'est en modifiant ce registre que l'on va pouvoir prendre la main et exécuter notre exploit.

Voici un exemple de code vulnérable :

#include <string.h>
 
void vuln(char * oflow)
{
        char buf[25];
        strcpy(buf, oflow);
}
 
void main (int argc, char ** argv)
{
        vuln(argv[1]);
}
wiki/buffers.overflows.1524570927.txt.gz · Dernière modification: 2018/04/24 11:55 par root
CC0 1.0 Universal
Powered by PHP Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0 Valid HTML5