Traducción y resumen de artículo
para Security Focus:
- Five common Web application vulnerabilities
- Sumit Siddharth, Pratiksha Doshi
3er Parte: Vulnerabilidades Format
String
Esta vulnerabilidad se
produce cuando el ingreso de entradas de usuario están sin filtrar,
generalmente son parámetros en código perl o C que realizan
funciones de formato, tales como printf ().
Un usuario
malintencionado puede utilizar el especificador de formato "%s" o "%x",
entre otros, para imprimir los datos de la pila o posiblemente otros
lugares de la memoria. Inclusive, puede escribir datos arbitrarios
en lugares arbitrarios de la memoria utilizando el especificador de
formato %n.
Las vulnerabilidades
Format String se podrían clasificar en tres categorías: denegación
de servicio, lectura y escritura.
Rating: Moderado a
Crítico.
Algunos Productos
Vulnerables:
McAfee AV, Usermin,
Webmin, various Apache modules, winRar, ettercap, entre otros.
-
Los ataques de
denegación de servicio se caracterizan por la utilización de
múltiples instancias del especificador de formato %s, este
especificador se utiliza para leer datos de la pila si se
generan múltiples peticiones hasta que el programa intente leer
datos desde una dirección ilegal se provocará que el programa se
caiga.
-
Los ataques de
lectura utilizan el especificador de formato %x, el cual es
utilizado para imprimir secciones de la memoria para las cuales
el usuario normalmente no tienen acceso.
-
Los ataques de
escritura utilizan especificadores de formato %d, %u o %x
para sobrescribir el puntero de instrucción y forzara la
ejecución de un shell (con permisos del usuario).
Este es un ejemplo del
archivo miniserv.pl (Webmin) que provoca esta vulnerabilidad:
if ($use_syslog && !$validated)
{
syslog("crit",
($nonexist ? "Non-existent" :
$expired ? "Expired" : "Invalid").
" login as $authuser from $acpthost");
}
Contramedida:
Modificar el código
fuente para que la entrada es verificada correctamente
Fuente: SecurityFocus
contactos@infosecurityvip.com