8. Buffer Overflow : Ejemplo de vulnerabilidad /* Ejemplo de desbordamiento de buffer en C */ #include <stdio.h> #include <string.h> int main(int argc, char *argv[]) { char buffer1[5]="AAAA"; char buffer2[5]; if (argc < 2) { fprintf(stderr, "SINTAXIS CORRECTA: %s <string>", argv[0]); return 1; } strcpy(buffer2, argv[1]); printf(" BUFFER 1: "); puts(buffer1); printf(" BUFFER 2: "); puts(buffer2); return 0; } Vulnerabilidades del Software -
9. Buffer Overflow : Ejemplo de programación segura /* Evitar desbordamiento de buffer en C. Ejemplo de programación segura */ #include <stdio.h> #include <string.h> int main(int argc, char *argv[]) { char buffer1[5]="AAAA"; char buffer2[5]; if (argc < 2) { fprintf(stderr, "SINTAXIS CORRECTA: %s <string>", argv[0]); return 1; } strncpy(buffer2, argv[1], sizeof(buffer2)); buffer2[sizeof(buffer2) - 1] = ''; printf(" BUFFER 1: "); puts(buffer1); printf(" BUFFER 2: "); puts(buffer2); return 0; } Vulnerabilidades del Software -
10.
11. Stack Smashing : Ejemplo de vulnerabilidad /* Ejemplo de programa de Pisado de Pila que utiliza la vulnerabilidad BO*/ #include <stdio.h> #include <stdlib.h> int main( int argc, char *argv[] ) { char buffer[1024]; // Buffer estático en la pila. if ( argc != 2 ) { printf("Uso: %s argumento", argv[0] ); return( -1 ); } // Copiado de cadenas sin control. strcpy( buffer, argv[1]); printf( "Argumento copiado" ); return(0); } Vulnerabilidades del Software -