Seguridad Informatica

Páginas: 18 (4297 palabras) Publicado: 26 de febrero de 2013
Solución al “hackcontest” de Balearikus Party 2009
Noviembre 2009 © Daniel Kachakil

Introducción
Este documento describe una solución al hackcontest, una competición de seguridad informática desarrollada por Miguel Gesteiro que ha sufrido varios cambios desde su primera edición (agosto de 2008). Este concurso ha estado presente en más de una Party, con desafíos que han ido variando a lolargo del tiempo, pero se publica de forma online por primera vez para la Balearikus Party de 2009 en la siguiente dirección web:
http://hackcontest.org:666/tour-party/

El reto consta de 10 desafíos de dificultad variada que podremos ir superando en cualquier orden, tras habernos dado de alta como usuarios registrados.

1

Solución al “hackcontest” de Balearikus Party 2009

© DanielKachakil

Desafío 01: “Supera este sencillo formulario” (4 puntos)
Nos aparece un formulario con un campo de texto y una pista que nos indica literalmente que “la clave es muy fácil”. Su resolución es tan simple como pulsar el botón “acceder” tras introducir en el campo de texto la cadena “muy fácil” (sin comillas, en minúsculas y respetando la tilde)

Desafío 02: “Otro formulario sencillo” (5puntos)
Otro formulario similar al del primer desafío, pero en esta ocasión la pista nos dice que “no siempre hay que hacer caso al webmaster...”. En esta ocasión revisamos el código fuente de la página y comprobamos que el envío del formulario está condicionado al valor que devuelve la función “chk()”, cuyo código se encuentra unas líneas más abajo:
var campoClave =document.getElementById("clave"); campoClave.focus(); function chk() { if(campoClave.value.length < 1) { alert('Clave vacía'); campoClave.focus(); return false; } else return true; }

Lo único que hace esta función es comprobar si se ha introducido algún texto en el campo clave, mostrándonos una alerta y evitando que se envíe el formulario en caso de que se haya dejado la clave en blanco. Parece que el webmaster ha delegadoesta comprobación para que se verifique en el lado cliente mediante JavaScript, así que intentaremos enviar una clave vacía. Para ello podemos proceder de varias formas. Una de ellas consiste en redefinir la función “chk” para que ejecute otro código (o incluso podría estar vacía), introduciendo esta cadena en la URL de nuestro navegador, seguida de un retorno de carro:
javascript:function chk(){};

Puesto que hemos anulado la función de validación, ahora bastaría con pulsar el botón y tendríamos el desafío superado. Lo mejor de esta solución, además de su sencillez, es que no requiere de ninguna herramienta adicional. Como solución alternativa, también podríamos haber utilizado un proxy para interceptar una petición válida del navegador (introduciendo cualquier clave) y editar elcampo “clave”, dejándolo en blanco. O si lo preferimos, incluso podríamos construir y lanzar una petición POST directamente sobre el servidor, lo que nos resulte más fácil.

2

Solución al “hackcontest” de Balearikus Party 2009

© Daniel Kachakil

Desafío 03: “Uno de base de datos SQL” (10 puntos)
En esta ocasión tenemos dos campos (usuario y contraseña) sin pistas, así que haremos caso altítulo de la prueba y asumiremos que detrás del formulario hay una base de datos SQL. Lo primero que se nos tiene que pasar por la cabeza al hablar de formularios y bases de datos es la inyección SQL, así que empezaremos probando con una comilla simple en el campo del usuario, pero también tendremos que introducir algún valor en el de la contraseña para pasar la primera barrera, que comprueba queninguno de los campos esté vacío. Así obtendremos el siguiente error descriptivo, que nos revela la instrucción completa (y también que el gestor de bases de datos es un SQLite):
ERROR SQL: SELECT * FROM usuarios WHERE usuario=''' AND clave='a'::SQL logic error or missing database

Puesto que no se ha filtrado la entrada de datos, podemos superar esta prueba con la clásica inyección de bypass...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • SEGURIDAD INFORMATICA
  • Seguridad Informatica
  • Seguridad Informatica
  • Seguridad Informatica
  • Seguridad informatica
  • Seguridad Informática
  • Seguridad informatica
  • Seguridad informatica

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS