bof y fsof
strings de formato
Buffer overflow
Corrupció
Corrupción de la pila de ejecución provocada por la escritura de una dirección de memoria
ejecució
direcciófuera de rango pero perteneciente al espacio de memoria del proceso. Sobreescribiendo
proceso.
la dirección de retorno de una rutina, el usuario puede ganar el control de l flujo de
direcció
delejecució
ejecución y adquirir los permisos del proceso vulnerable.
Strings de formato
Cadena que indica el formato con el que ciertos datos se tratan por parte de funciones
como printf. Si se leda control al usuario sobre esta cadena, éste la puede emplear para
sobreescribir direcciones de memoria que le den control sobre el proceso y por tanto
adquiera sus permisos
Buffer overflowsvs Format Strings
Buffer overflow
Format String
Público desde
Mediados de los ’80
Junio de 1999
Peligro reconocido
Década de los ’90
Junio de 2000
Número de exploits
Variosmiles
Varias docenas
Considerado como
Problema de seguridad
Error de programación
programació
Técnicas
Avanzadas
Básicas
Visibilidad
Difí
Difíciles de reconocer
Fácilesde hallar
Buffer overflows
En la pila de ejecución se almacenan variables diná micas (por ejemplo las asociadas
ejecució
diná
a una función).
funció
Debido a la falta de comprobación de límites en la escritura sobre un array, puede
comprobació
lí
accederse a la dirección de retorno de una rutina y conseguir que apunte a código
direcció
có
suministrado por el usuario.
Shell deroot – Ingredientes
-
-
Un lenguaje sin chequeo de límites
Código vulnerable (que dé por sentado el tamaño de la entrada y no
haga comprobaciones)
Flag de suid en el ejecutable vulnerableBuffer overflows: Estructura de la pila
…
char buffer1[256];
funcion(1,2,3);
...
(crecimiento de la pila)ß[buffer1][sfp][@retorno][1][2][3]
Buffer overflows: Código vulnerable
void...
Regístrate para leer el documento completo.