App - Système

samedi 10 octobre 2015, 19:39  #1
ELF32 - Stack buffer overflow basic 4
lika
  • 6 posts

Salut,

Je bloque sur ce chall depuis quelques heures car lorsque je lance le programme avec l’overflow tout fonctionne très bien le shellcode s’exécute mais seulement lorsque je le lance depuis gdb.
Peut être que les adresses changent quand on ne lance pas le programme avec gdb mais si c’est le cas je ne vois pas comment faire.
Est-ce que gdb introduit un offset avec lequel je peux recalculer mes adresses facilement ou je dois changer ma manière de faire pour ne pas avoir à tenir compte des adresses (je vois pas comment faire).

merci de votre aide :)
lika

samedi 10 octobre 2015, 19:46  #2
ELF32 - Stack buffer overflow basic 4
St0rn
  • 7 posts

Il y a un décalage entre gdb et hors gdb :) tu à plusieurs solutions mais je sais pas si je peut en parler ouvertement sur ce topic :).

samedi 10 octobre 2015, 19:51  #3
ELF32 - Stack buffer overflow basic 4
lika
  • 6 posts

et il est impossible de prédire ce décalage ?

samedi 10 octobre 2015, 19:55  #4
ELF32 - Stack buffer overflow basic 4
St0rn
  • 7 posts

Si, après je peut t’en parler si tu va sur le channel irc de root-me car comme je te l’ai dit, je ne sais pas si c’est considéré comme du spoil ou non.

samedi 10 octobre 2015, 20:01  #5
ELF32 - Stack buffer overflow basic 4
lika
  • 6 posts

Ok je vais d’abord devoir installer un clien IRC

mercredi 2 décembre 2015, 17:25  #6
ELF32 - Stack buffer overflow basic 4
fcosnefr42
  • 1 posts

Salut, je me permets de relancer le sujet parce que j’ai exactement le même soucis, le shell se lance sous gdb mais pas segfault sinon, et je vois pas comment faire...
Merci :)

mercredi 27 janvier 2016, 12:59  #7
ELF32 - Stack buffer overflow basic 4
Exp
Exp
  • 4 posts

Bonjour,

Je suis actuellement en train d’essayer de faire le challenge basic buffer overflow 4 depuis quelques heures et je suis bloqué sans comprendre les raisons ..
J’arrive à écraser l’EBP , mais lorsque je rajoute 4 caractères je n’arrive pas à réecrire sur l’EIP .
Ce qui est etrange c’est que par exemple si je met 32 * "A" j’arrive à écraser l’ EBP, si j’en met 36 je n’arrive pas à réecrire l’EIP , mais si j’en met 35, l’eip = 0x00414141 , mais lorsque je met le 36ème il n’y à rien à faire l’EIP à une valeur complétement autre ..

Merci d’avance pour votre aide .

vendredi 19 février 2016, 21:50  #8
ELF32 - Stack buffer overflow basic 4
noname
  • 1 posts

Tu peux ajouter quelques octets, juste pour voir... ou encore mieux, comprendre ce que fait précisément l’assembleur de la fonction de GetEnv (et ce qui cause ce problème), car cela peut aussi donner une idée pour concevoir une solution très élégante à l’autre problème posé initialement dans ce post.

mardi 15 mars 2016, 11:52  #9
ELF32 - Stack buffer overflow basic 4
hivian42
  • 5 posts

Pour la différence gdb et hors-gdb, c’est tout simplement parce que leur env a quelques différences d’octets. Du coup ça décale les adresses. Pour résoudre le problème simplement, voici un indice : la commande env est votre amie et stack overflow est votre second ami.