HackIt 2010: Solución al level 1

SPOILER! Si quieres resolverlo por tu cuenta, no sigas leyendo (Edit: recuerda que el HackIt! 2010 está disponible en la web de Marcan)

Tú lo has querido, estabas avisado…

Analizando el código fuente veremos la siguiente función Javascript (que he desplegado para que el código se vea mejor):

 
function check(){
...
    if(pass.charCodeAt(0) == "102"){
        if(pass.charCodeAt(1) == "52"){
             if(pass.charCodeAt(6) == "115"){
                  if(pass.charCodeAt(3) == "49"){
                      if(pass.charCodeAt(8) == "109"){
                         if(pass.charCodeAt(5) == "49"){
                               pass2 = pass.replace("i","1").replace("a","4").replace("o","0");
                               if(pass.charCodeAt(2) == "99"){
                                     if(pass.charCodeAt(7) == "49"){
                                         if(pass.charCodeAt(4) == "108"){
                                              if(pass.charCodeAt(9) == "111"){
                                                       Login();

Es decir, se comprueba letra a letra la cadena que hayas metido como password. Para que no sea trivial, en lugar de comprobar el carácter en sí, se comprueba su código ASCII. Y en una línea especial se busca que todas las i se sustituyan por el número 1, las a por el 4 y las o por el número 0 (esta última sustitución es una pequeña trampa, porque en la última rama del if se comprueba que la última letra sea realmente una o – y no un 0 – )

Así pues:

Posición: 0    1    2    3     4    5    6     7       8     9
ASCII    102   52   99   49   108   49   115  49     109   111
carácter  f    4   c    1     l     1    s    1      m     o

El autor del level (hey_neken) lo decía en el propio enunciado, el password es f4c1l1s1mo .

3 comentarios en «HackIt 2010: Solución al level 1»

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

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