Para crear el buffer. Siga este ejemplo:

# Include

int main () {

login_name char [20];

printf (” Introduzca sesión”:);

scanf (% s , login_name);

printf (” Buffer Overflow “!)

}

Este código básico crea una matriz de caracteres (una palabra, esencialmente) llamado ” login_name ” que contendrá la entrada del usuario. Tenga en cuenta que ” login_name ” está a sólo 20 caracteres de longitud. Entonces, el programa solicita la entrada del usuario, y almacena la información en ” login_name”.

Provocar un desbordamiento de búfer. Compile el programa y ejecutarlo. Cuando se le indique, introduzca un nombre de inicio de sesión que supera los 20 caracteres. Por ejemplo:

Por favor, introduzca sus datos de acceso: Se trata de una larga condena que supere el espacio disponible en el inicio de sesión variable.

” Hit Enter”. El mensaje de salida se imprime y el programa termina. La variable ha invadido el espacio de búfer disponible en el login_name ” variables “. La pregunta entonces es: ¿qué pasó?

La comprensión de cómo la memoria de la computadora. Como la entrada del usuario se almacena en ” login_name”, información en exceso (los caracteres más de 20 caracteres) fue escrito en la memoria más allá de los límites de la variable. Estos datos se almacenan en algún lugar. En este caso, se almacena en la memoria inmediatamente adyacente a donde el login_name ” variable de “. Más allá de los límites de la variable de registro, los datos adicionales (intencionalmente o no) vuelve a escribir los datos de inmediato junto a la variable. Esto significa que el pirata informático podría básicamente reescribir el código, y cambiar cómo funciona el código, esencialmente propietaria de la red.

Al darse cuenta de la vulnerabilidad de Linux. Linux está codificado en C / C + +, y muchos de su funcionalidad básica requiere la manipulación de cadenas de caracteres. Sin embargo, muchas distribuciones modernas de Linux protección contra los casos de desbordamiento de búfer en los puntos donde se requiere la intervención del usuario, ya sea a través de la protección de pila o una matriz dinámica de cambio de tamaño de los caracteres. Todavía hay vulnerabilidades: Desbordamiento de búfer hazañas USB descubierto en 2011 es un ejemplo. En el caso de USB, una larga ID USB adicional puede causar un desbordamiento de una variable del sistema en Linux.

Napster2011

Anuncios