🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #1096

Re: buff overflow

#1096
From: arrase
Date: Wed, 10 May 2006 23:40
50 lines
3165 bytes
Pedro Maicas wrote:
> 
> Yo creo que te equivocas, en muchas funciones es imposible
> comprobar el tama�o de un buffer sin cambiar su interface,
> ya que una funcion que lleva como par�metro un puntero a 
> un buffer (que ser� de entrada) y no lleva un par�metro
> que indique su tama�o, no tiene modo de comprobar el
> tama�o real del buffer.
> 
> Saludos :-)           -Pedro-

Es cierto, ha raiz de esta respuesta he preguntado a Jack, de Gulcas.org
y dado razones tecnicas de ello:


 Imposible del todo.
 Si reservas un buffer de 10 bytes, puedes, en C, hacer buffer[2]=23
 o buffer[100000]=42 ya que C solo se limita a pillar &buffer o &buffer[0]
 y sumarle el tama�o de un elemento x el elemento que solicitas...
 en el caso que la direcci�n calculada no tenga privilegios de acceso
 da un bonito segmentation fault, sino se sobreescribe sin m�s.
 Haz un programa simple, y estudia la pila con el gdb, no hay ninguna
 info referente a cu�nto ocupan los buffers (vectores), es m�s, C solo
 se preocupa en reservarte el tama�o que le pidas, lo que luego pase es
 cosa tuya... bueno, almenos en los vectores reservados "est�ticamente",
 es decir, sin malloc.

Tambien encuentro interesante este otro comentario de Jack:

.....el buffer overflow es una t�cnica un poco pasada de moda a ra�z de
la llegada del kernel 2.6.11 que introduce aleatorizaci�n en las
direcciones de la pila del ejecutable, por lo que es casi imposible
acertar en que direcci�n reside el EIP... aunque tambi�n hay t�cnicas
para acertarlo....

...La aleatorizaci�n tiene un rango de 8 MB.....



Saludetes.


-- 
<arrase@gulcas.org><http://arrase.no-ip.org><www.gulcas.org>
     <Gnupg Keys: http://arrase.no-ip.org/pubkey.txt>

print "".join(map(lambda numChar:filter(lambda x:(x<"0") or \
(x>"9"),numChar),["0"+chr(104)+"0","1"+chr(111)+"1","2"+chr(108)+"2", \
"3"+chr(97)+"3","4"+chr(32)+"4","5"+chr(109)+"5","6"+chr(117)+"6", \
"7"+chr(110)+"7","8"+chr(100)+"8","9"+chr(111)+"9"]))
Technical Details
Message-ID: <e3tt7c$7v2$1@hercules.cohp1>
Path: arc1-ca.pugleaf.net!g2news2.google.com!news3.google.com!news.glorb.com!news.antakira.com!cagarruta.escomposlinux.org!hercules.escomposlinux.org!escomposlinux.org!not-for-mail
References: <e3sf09$fdj$1@hercules.cohp1> <1gh36210hhjcm14chf7dj79ubrocvanc8m@4ax.com>

Show Full Headers
Complete Article Headers
X-Google-Thread: f86c8,64071a3495c20e
X-Google-Attributes: gidf86c8,public
X-Google-Language: SPANISH,ASCII
Path: arc1-ca.pugleaf.net!g2news2.google.com!news3.google.com!news.glorb.com!news.antakira.com!cagarruta.escomposlinux.org!hercules.escomposlinux.org!escomposlinux.org!not-for-mail
From: arrase <arrase@gulcas.org>
Newsgroups: es.comp.os.linux.programacion
Subject: Re: buff overflow
Date: Thu, 11 May 2006 01:40:14 +0200
Organization: escomposlinux.org
Lines: 50
Message-ID: <e3tt7c$7v2$1@hercules.cohp1>
References: <e3sf09$fdj$1@hercules.cohp1> <1gh36210hhjcm14chf7dj79ubrocvanc8m@4ax.com>
Reply-To:  arrase@gmail.com
NNTP-Posting-Host: 168.red-80-38-162.staticip.rima-tde.net
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
X-Trace: hercules.cohp1 1147303981 8162 80.38.162.168 (10 May 2006 23:33:01 GMT)
X-Complaints-To: newsmaster@news-17.escomposlinux.org
NNTP-Posting-Date: Wed, 10 May 2006 23:33:01 +0000 (UTC)
User-Agent: Thunderbird 1.5.0.2 (X11/20060502)
In-Reply-To: <1gh36210hhjcm14chf7dj79ubrocvanc8m@4ax.com>
X-Enigmail-Version: 0.94.0.0