Pointer Redirecting
Pointeurs de chaîne
Si un appel de fonction doit utiliser l'adresse d'une chaîne située dans la pile, il est possible d'exploiter le dépassement de tampon pour écraser cette adresse et mettre une adresse pointant vers une autre chaîne à l'intérieur du binaire.
Par exemple, si un appel de fonction system
doit utiliser l'adresse d'une chaîne pour exécuter une commande, un attaquant pourrait placer l'adresse d'une autre chaîne dans la pile, export PATH=.:$PATH
et créer dans le répertoire actuel un script portant le nom de la première lettre de la nouvelle chaîne car il sera exécuté par le binaire.
Vous pouvez trouver un exemple de ceci dans :
32 bits, changer l'adresse de la chaîne de drapeaux dans la pile pour qu'elle soit imprimée par
puts
Pointeurs de fonction
Similaire au pointeur de chaîne mais s'appliquant aux fonctions, si la pile contient l'adresse d'une fonction qui sera appelée, il est possible de la modifier (par exemple pour appeler system
).
Vous pouvez trouver un exemple dans :
Références
Last updated