[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