Exploitation BOF programme C/C++

Résolu/Fermé
toutouille - 17 juin 2011 à 22:19
 toutouille - 18 juin 2011 à 12:53
Bonjour,

au risque d'être hors-charte, je vous expose tout de même mon problème :

je m'entraine actuellement à l'exploitation de la faille buffer overflow sur un programme de ma création.
J'arrive à l'exploiter en utilisant les paramètres du programme, et perl ou ruby (./programme 'perl -e \x82') par exemple pour inserer des caracteres spéciaux.

J'aimerais connaitre une manière de faire de même mais suite à une demande de la part du programme, comme un cin() ou un scanf() en C/C++. Car avec ces fonctions, lorsque l'on rentre \x82, ce sont 4 caractères qui sont entrés. Je n'ai toujours pas trouvé de solution.

Merci d'avance

1 réponse

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 836
18 juin 2011 à 00:55
Bonjour,

Si tu mets un scanf("%s", ...), il faudra que tu mettes le caractère équivalent au code ascii 0x82. Tu peux pas faire autrement.

Cdlt,
0
D'accord, mais le problème se pose pour les caractères genre 0x12, mais je pense que tu as compris. Merci pour l'info en tout cas !
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 836
18 juin 2011 à 01:18
Oui, le problème se pose pour tous les caractères non imprimables. Mais cela ne pose pas de problème car le BOF se fait via un autre programme comme tu l'as fait avec perl.
0
Ok, merci beaucoup
0