[HACK] Integer Buffer Overflow

Jesus Cea jcea at argo.es
Sun Jun 5 20:36:32 CEST 2005


Adjunto todo el mensaje original, porque hace tiempo que se publicó.

Si quieres sobreescribir 100 valores, lo que necesitas es expresar el 
número -100 en complemento a dos, en 32 bits. Ese valor es 4294967196, 
más o menos.



[ __BoKeN__ ] wrote:
> Hola a todos.
> 
> En el siguiente codigo:
> 
> #define MAX_SIZE 80
> 
> int main(int argc, char **argv) {
>     char buf[MAX_SIZE],*pbuf=buf;
>     int count = atoi(argv[1]);
> 
>     if (count >= MAX_SIZE) count = MAX_SIZE-1;
> 
>     while (count--) *pbuf++=getchar();
>     *pbuf=0;
> }
> 
> Se puede explotar dando como argumento un valor superior a 2147483647, 
> de este modo el count se desborda y se convierte en un numero negativo. 
> Despues comenzara a restarle 1 consecutivamente hasta que valga 0.
> 
> Desbordando la variable count, el numero minimo de bytes sobreescritos 
> es de 2147483648 (-2147483648,2147483647,2147483646,...,1), la cuestion 
> es que yo no quiero sobreescribir tantas direcciones de memoria, solo 
> querria escribir cerca de 100 bytes. (buf,80 bytes;int,4 bytes;ESP,4 
> bytes; EBP, 4 bytes;EIP 4 bytes) sin tener en cuenta la alineacion y 
> demas detalles.
> 
> ¿Que puedo hacer para controlar el numero de bytes sobreescritos y poder 
> para una vez alcanzado el EIP?
> 
> Saludos y gracias a todos de antemano.
> 
> _________________________________________________________________
> Descarga gratis la Barra de Herramientas de MSN 
> http://www.msn.es/usuario/busqueda/barra?XAPID=2031&DI=1055&SU=http%3A//www.hotmail.com&HL=LINKTAG1OPENINGTEXT_MSNBH 
> 
> 
> _______________________________________________
> Lista - http://mailman.argo.es/listinfo/hacking
> FAQ - http://www.argo.es/~jcea/artic/hack-faq.htm
> "una-al-dia" para estar siempre informado - http://www.hispasec.com/
> 
> 

-- 
Jesus Cea Avion                         _/_/      _/_/_/        _/_/_/
jcea at argo.es http://www.argo.es/~jcea/ _/_/    _/_/  _/_/    _/_/  _/_/
                                       _/_/    _/_/          _/_/_/_/_/
PGP Key Available at KeyServ   _/_/  _/_/    _/_/          _/_/  _/_/
"Things are not so easy"      _/_/  _/_/    _/_/  _/_/    _/_/  _/_/
"My name is Dump, Core Dump"   _/_/_/        _/_/_/      _/_/  _/_/
"El amor es poner tu felicidad en la felicidad de otro" - Leibniz





More information about the hacking mailing list