Abuse Melding

Je hebt een klacht over de onderstaande posting:

26-03-2007, 17:42 door Anoniem

Direct /bin/sh op de stack pushen is niet zo moeilijk. Zoals je weet wil execve een programma om uit te voeren in %ebx, als een pointer naar een string. Je weet dat strings in C met een NULL byte af worden gesloten dus we xor'en eerst benodigde registers: xor %eax, %eax xor %edx, %edx (is voor environment, gebruiken we niet dus NULL) Vervolgens prepareren we de string in het geheugen: [0x00]/bin//sh (die 2 slashes zijn ervoor omdat er in veelvoud van 4 bytes wordt gewerkt. We krijgen dus de volgende code: push %eax (dat wordt onze NULL byte om de string af te sluiten) push $0x68732f2f (hs//) push $0x6e69622f (nib/) De stack pointer wijst nu aan het begin van de string, dus die zetten we in %ebx mov %esp, %ebx Nu moeten we nog een array van pointers (als argument) in %ecx zetten. Dit is vrij eenvoudig: "/bin//sh", NULL dus: push %eax (NULL byte om de array af te sluiten) push %ebx (onze pointer naar /bin//sh) Dit stoppen we in %ecx: push %esp, %ecx en ...

Beschrijf je klacht (Optioneel):

captcha