HackIt! 2007 : un repaso a las pruebas

Ayer, los miembros de diariolinux.com nos apuntamos a la Euskal Encounter 2008. Como ya comenté, este año iremos con más experiencia y ganas si cabe a participar en el HackIt! . No nos hacemos demasiadas ilusiones porque hay grupos muy, muy buenos compitiendo. El caso es que me interesaba repasar la solución a las pruebas del HackIt2007, por varias razones: para ir desempolvando mis conocimientos de ensamblador (muy oxidados ya :-), de GDB, OllyDBG…, para ahorrarle trabajo al organizador ( txipi ), y para que queden por escrito algunos apuntes sobre el tema, que usaré más adelante en mis clases de seguridad informática.

He colgado de http://hackit2.diariolinux.com el concurso del año pasado, que analizaré a lo largo de estos días, al menos hasta llegar a la prueba 11, donde nos atascamos (así, si algún lector la superó en su día o la supera ahora que está colgada en DL, pues mejor que mejor, porque podrá explicarnos al resto cómo lo hizo 🙂

Sin más dilación, pasamos con la primera prueba, que como toda «primera» , su resolución es bastante sencilla. Lo primero que se nos ocurre es analizar el código fuente de la página, centrándonos en el ćodigo Javascript que recoge los datos (login y password) y los envía al servidor:

<script src="JavaScript">
        function Login() {
          var user = document.login.username.value;
          var pass = document.login.password.value;
          if (user=="euskal" & pass=="p4rt7") {
	    location.href = 'level2-' + pass + '.html';
	  } else {
	    alert("ACCESS DENIED!");
	  };
        }
  </script>

A primera vista parece que el login(username) debería de ser euskal y el password p4rt7, pero si probamos esos datos en el formulario veremos que son incorrectos (!). ¿Dónde está el truco? En la primera línea del código anterior:

<script src="JavaScript">

Esto que a primera vista podría parecer una línea que dice «el código fuente que viene a continuación está escrito en JavaScript», resulta que no dice eso, sino «insertar aquí el código fuente de un script almacenado en un fichero que se llama… tachán, tachán, ‘JavaScript’ «. El dichoso archivo podría haber tenido otro nombre, como funcion.js o algo similar, pero no, le han llamado JavaScript, para hacerlo un poco menos trivial 😉

Si abrimos ese fichero, veremos la clave que nos lleva al nivel 2.

4 comentarios en «HackIt! 2007 : un repaso a las pruebas»

  1. Gracias por este entretenimiento online. ¿Sabéis de más sitios? Estaría bien que nos fueses dando pistas, o ir resolviendo un nivel cada semana o cada cierto tiempo para enseñarnos poco a poco. He pasado el nivel 2 de una forma un poco peculiar que me gustaría mostrar, pero eso sí dentro de un tiempo.
    Saludos

  2. Buena iniciativa, el año pasado creo que solo pasé los 2 primeros (igual que el anterior). Viendo los de después y como se bloqueaba la gente que entendía del tema, es una prueba muy muy difícil.

    Agur

  3. Gracias por colgar los hackits y por comentarlos. Ya hemos empezado a preparar el hackit de este año, recordad que en esta edición aceptamos propuestas de niveles y si finalmente se aceptan, un nivel menos que tenéis que resolver.

    Happy hacking! 😉

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.