lunes, 11 de abril de 2011

Manipulación del Estado del Cliente

Este es un tipo de ataque por entradas no válidadas. Por regla general las apliaciones web deben válidar todas las entradas, debido a que el protocolo utilizado para comunicar el cliente y el servidor es el HTTP. Este protocolo es olvidadiso, es decir, que  no almacena la información que se procesa y se envía al cliente. Esta característica del protocolo y el descuido de los programadores es un punto de entrada para explotar esta vulnerabilidad.
Ejemplo o situación:
Imaginense que tienen un formaulario con tags input con types "text", "submit", y sobre todo "hidden". Este formulario, es utilizado para actualizar los datos de una persona en una base de datos, en donde el campo hidden mantiene el identificador único(id de la tabla del registro que se desea actualizar) que permitirá actualizar los datos de la persona.
Que el control de tipo hidden no se visualice en el navegador, no significa que no pueda ser alterado los datos que contiene el mismo. Una forma de cambiar los datos es utilizar la herramienta firebug e ingresar en el modo de edición de para cambiar los datos. Otra forma de hacerlo es descargar la página, realizar los cambios de los datos a través de un editor y luego correrla a través del navegador. También si los datos se envían por el método GET, las entradas que van al servidor viajan en la url y estas pueden ser modificadas simplemente modificando la url. 
Cuando se efectué un post o se presione el botón de guardar los datos, el formulario modificado llevará los datos y el id cambiado.
Esta acción de modificar el formulario, llevará los datos cambiados al servidor y si además los datos en el servidor no son válidados, cuando se actualice en la base de datos se cambiaran datos de registros que no deberian haberse cambiado.

Las posibles soluciones la estaré escribiendo proximamente, saludos...

No hay comentarios:

Publicar un comentario