[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