domingo, 25 de julio de 2010

[Hack web parte.1] Analisis de una pagina

Haciendo un tiempo entre los exámenes voy a ir posteando una serie de entradas sobre hacking a paginas web. Básicamente la idea es mostrar lo sencillo que suele ser encontrarse con una pagina vulnerable y explotarla, o como propietario de una pagina ser víctima de algún tipo de ataque.
ACLARACION: Esto no es un tutorial. Gonzac Studios no se hace responsable por el mal uso de este material.



------
Primero voy a comenzar con el análisis, existen varios programas para hacer auditorías que permiten a los webmaster (y a un otro tanto grupo mal intencionado) reconocer las diversas fallas y vulnerabilidades que puede tener una pagina. Pero el análisis que voy a realizar se basa en entender las diferentes partes, y reconocer la vulnerabilidad.
Click en las imagenes para ampliarlas


A primera vista se ve un login común y corriente, para iniciar sesión los datos ingresados deberían estar en la base de datos. Pero miremos que pasa al introducir datos cualquiera, la pagina nos va a redireccion a otra (notificarse) y con el nombre de usuario que introdujimos.

Volviendo a la pagina principal, en el código de fuente se ve que esta compuesto por dos frame (algo así como marcos o partes) la pagina con la cabecera y la pagina con el login.



Ahora que tengo el nombre puedo abrir solo el login y analizar el código de fuente.



Esta primera parte nos interesa porque se observa un script en java script que indica que si los campos están vacíos no nos va a redireccionar, y nos va a mostrar un mensaje de alerta. Luego hace referencia a una ruta donde se encuentra el archivo css , con los estilos de la pagina, tal vez en algún momento nos pueda interesar.



En esta otra se encuentra el form (formulario, donde se solicita información al visitante) llama a autentificarse.php que es el que se encarga de la comprobacion de los usuarios y la base de datos a través del método post,( para desilucion de algunos permanece oculto y no sera tan fácil acceder a ello), y el onsumit que llama al script anterior.

Siguiendo con el análisis, encontramos el primer filtro.
Imput es la etiqueta que representa a los campos a rellenar, sus atributos tipo, tamaño, nombre, autocompletar apagado, y maxlength=20 que filtra la cantidad de caracteres que se puede introducir. En el remoto caso que se pudiera inyectar código, esto limitaría mucho el expliot (secuencia de código que aprovecha la vulnerabilidad) y ni siquiera se podría cambiar el titulo.

Para esto se utiliza una técnica llamada form tampering ya sea utilizando un sniffer o mediante un add-ons de firefox, que nos permite modificar "antes" de enviar la petición (ver campos ocultos y modificarlos o en este caso modificar el atributo maxlength).



Y hasta acá con la primer parte. Saludos a todos.