Article View: es.comp.os.linux.programacion
Article #26Duda en un bufferoverflow simple
From: Ricardo Catalinas Jiménez
Date: Mon, 12 Jul 2004 11:39
Date: Mon, 12 Jul 2004 11:39
40 lines
2956 bytes
2956 bytes
Hola a todos. El codigo al que me refiero esta pasteado aqui (http://rafb.net/paste/results/tlGU7e94.html). El codigo esta compuesto por 2 programas, uno es el vulnerable y el otro aprovecha el agujero de seguridad del primero. Me he informado del funcionamiento general de los bufferoverflows (los del stack) y mirando este codigo tengo una simple duda en una linea en concreto. Antes de nada comentar que la variable 'ret' es la que contendra la direccion en la que empezara nuestro shellcode o nop sled (dependiendo, pero para el caso da igual). Este valor se escribira a lo largo del stack hasta sobrescribir la direccion de retorno de la funcion, por lo que se ejecutara nuestro codigo al salir de dicha funcion. Hasta aqui todo claro, el funcionamiento general del exploit lo entiendo. Mi duda se encuantra en la linea 39: Sabiendo para que sirve la variable 'ret', se supone que averiguamos dicha direccion en la que empieza el buffer (con nuestro shellcode) con la funcion 'sp'. Mi duda es que relacion guarda el valor del 'esp' con dicha direccion en ese momento. A mi entender, el 'esp' esta en ese momento apuntando a la variable 'ptr' (la cual es local, por lo que se almacena en el stack, y es la ultima que se ha declado, por lo que tendra la direccion mas baja dentro del stack). Por tanto, resumiendo, lo que to entiendo es que con esa funcion conseguimos la direccion de 'ptr', la cual no es la deseada. Como el exploit funciona, y se que soy yo el que me equivoco, me gustaria que alguien me pudiese aclarar que es lo que realmente sucede en esa linea de codigo. Gracias por vuestra paciencia. Saludos -- Ricardo Catalinas Jimenez th1nk3r(at)server01(dot)org Madrid, Spain.
Technical Details
Message-ID:
<nSuIc.9153$r4.276266@news-reader.eresmas.com>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!news.glorb.com!newsfeeder.wxs.nl!news3.kpn.net!news.kpn.net!teleglobe.net!62.81.31.29.MISMATCH!cyclone.auna.com!news-feeder.eresmas.com!news-reader.eresmas.com!not-for-mailShow Full Headers
Complete Article Headers
X-Google-Thread: f86c8,7b5cc85df5138e1c,start X-Google-Thread: 10f58f,7b5cc85df5138e1c,start X-Google-Attributes: gidf86c8,gid10f58f,public X-Google-Language: SPANISH,ASCII-7-bit Path: arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!news.glorb.com!newsfeeder.wxs.nl!news3.kpn.net!news.kpn.net!teleglobe.net!62.81.31.29.MISMATCH!cyclone.auna.com!news-feeder.eresmas.com!news-reader.eresmas.com!not-for-mail From: Ricardo Catalinas Jiménez <nospam@nospam.com> User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7) Gecko/20040618 X-Accept-Language: en-us, en MIME-Version: 1.0 Newsgroups: es.comp.os.linux.programacion,es.comp.lenguajes.c Followup-To: es.comp.os.linux.programacion Subject: Duda en un bufferoverflow simple Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Lines: 40 Message-ID: <nSuIc.9153$r4.276266@news-reader.eresmas.com> Date: Mon, 12 Jul 2004 13:39:27 +0200 NNTP-Posting-Host: 62.174.242.172 X-Complaints-To: abuse@eresmas.com X-Trace: news-reader.eresmas.com 1089632787 62.174.242.172 (Mon, 12 Jul 2004 13:46:27 MET DST) NNTP-Posting-Date: Mon, 12 Jul 2004 13:46:27 MET DST Organization: eresMas