VULNERABILIDADES DE APLICACIONES WEB: DELIMITADORES DE PARÁMETROS - UN EJEMPLO DE ATAQUE INGENIOSO

03.01.2018 09:44
Supongamos el siguiente contenido del archivo usuarios.dat que contiene los datos de los usuarios registrados:
 
135409973|Juan|usuario| 
634147881|Marcos|administrador|
455255201|Ana|usuario|
 
El programa que guarda los datos crea un código único para cada usuario, a continuación escribe el delimitador "|", el nombre del usuario, el delimitador "|" y a menos que quien acaba de registrarse sea administrador al final agrega la palabra "usuario" y nuevamente el delimitador "|". El recién registrado no tendrá ningún permiso especial.
 
Ahora bien, si el programa analiza el archivo usuarios.dat de izquierda a derecha, cuenta los parámetros en base al delimitador y se detiene en el tercero entonces es posible crear un nuevo nombre de usuario como el siguiente:
 
Luis|administrador
 
que será guardado por el programa al final de usuarios.dat de la siguiente forma:
 
135409973|Juan|usuario| 
634147881|Marcos|administrador|
455255201|Ana|usuario|
542754992|Luis|administrador|usuario|
 
Como el programa detiene el análisis de los datos de cada usuario en el tercer delimitador, Luis tendrá privilegios de administrador.
 
¡CUIDADO! Basándonos en la presente técnica y combinándola con otra hemos logrado (CON EL EXPRESO PERMISO DE HACERLO) modificar nuestro puntaje en un juego en línea. El programdor y quien analice la seguridad de la aplicación no deberán subestimar la creatividad de los piratas informáticos. Quien escribe este artículo recomienda inisistenetemente coronar cualquier análisis estático y/o dinámico - cuya utilidad no niega - con un test de penetración. ¡No permitamos que el primero en hacerlo sea un hacker!