App - Système

mercredi 25 juillet 2018, 09:21  #1
ELF x64 - Stack buffer overflow - basic
Roinard
  • 1 posts

Bonjour,
J’ai réussi à exécuter callMeMaybe() mais lorsque je demande au shell "cat ./passwd". Je n’obtient qu’un petit "Permission denied" suivie du printf.
(perl -e ’print "payload"’ ; /bin/cat .passwd) | ./ch35

J’ai donc essayer de passer par echo cat .passwd avec :
(perl -e ’print "payload"’ ; /bin/echo /bin/cat .passwd) | ./ch35

Et là il n’y a plus de réponse (autre que le printf)
A priori, le shell reçoit bien mon argument mais mon argument est surement mauvais.

Est ce quelqu’un pourrait me donner un indice ? :)

Edit : C’est bon problème résolu !

mercredi 8 août 2018, 13:41  #2
ELF x64 - Stack buffer overflow - basic
Spykik
  • 8 posts

Salut Roinard,
Peux-tu expliquer comment tu as résolu ton problème ? Je suis dans le même cas que toi... Merci.

mercredi 8 août 2018, 15:28  #3
ELF x64 - Stack buffer overflow - basic
mgazel
  • 2 posts

Il a du changer
/bin/echo /bin/cat .passwd
par
/bin/cat .passwd < /bin/echo

mercredi 8 août 2018, 15:51  #4
ELF x64 - Stack buffer overflow - basic
Spykik
  • 8 posts

Merci mgazel pour ton retour.
J’ai réussi à résoudre le challenge. En fait la majorité des solutions proposées ne fonctionnent plus... Il faut dupliquer l’adresse dans la payload (les 8 derniers octets) au moins 2 fois (cf la solution page 2 de zilio)

jeudi 16 août 2018, 17:41  #5
ELF x64 - Stack buffer overflow - basic
7r4nc3
  • 3 posts

En effet Spykik c’est l’aslr qui rajoute des octets