[HACK] return-into-libc
Rafael San Miguel Carrasco
rsmc at soluciones-seguras.com
Tue Sep 21 06:13:32 CEST 2004
Hola,
Tengo un par de dudas acerca de la técnica return-into-libc para
explotar desbordamientos.
En los tutoriales que he leido siempre hablan de una estructura que debe
encontrarse en memoria antes de la llamada a system ():
<dirección system()><dirección retorno><dirección argumento>
Mi duda es por qué esta estructura funciona. En principio, el sistema
operativo lee la dirección de retorno y la carga en el eip, pero
nunca había visto casos en los que se añadan estos dos parámetros
adicionales. En el código ensamblador que se genera para un
programa tampoco aparece esta ordenación en memoria, al menos lo que yo
he visto con el ddd.
La segunda duda es en relación con la dirección de system ().
Dependiendo del procedimiento que utilice, aparece una dirección
0x80X o una dirección 0x40X. Entiendo que la primera es la de la
librería libc y la segunda la llamada a sistema del kernel, pero
no he encontrado ninguna forma de demostrarlo.
Muchas gracias. Un saludo.
More information about the hacking
mailing list