En el artículo anterior llegamos a superar el login y llegamos a esta pantalla.
Detrás del ? vienen las variables y sus valores.
El email, ya sabemos que está bien. Pero la clave no la sabemos y el juego nos invita a encontrarla por fuerza bruta. También nos dice que son 4 dígitos para ahorrarnos trabajo y para invitar a los que no saben programar a usar la paciencia y el trabajo en equipo 😉
En este caso estamos permitiendo que cualquiera genere una URL a medida para tratar de romper la clave. No hay control de acceso, no hay máximo de intentos, no hay validación de la entrada -aunque para el ataque de inyección SQL he preparado otro reto a medida-. El caso es que esto es la receta idea para ser atacado con un simple cambio en el script de python que os enseñe hace unos días.
El código es tan simple como esto:
import urllib2
import urllib2 numero=1000; while 1: url = "https://hackme.amonesta.me/login/pagina2.php?email=admin%40hack.me&pass="+str(numero) print "probando URL: "+ url a = urllib2.urlopen(url).read() if "KEY" in a: print a break else: numero = numero + 1
Cualquier persona que sepa algo de Python os dirá que eso es una vergüenza. Ni siquiera estoy usando el multi-hilo. Pero se trata de demostrar que sin ningún conocimiento de programación se puede ser «peligroso» cuando uno ataca páginas que de por sí son vulnerables.
En ese código empiezo en 1000 -el primer número de 4 cifras que hay-, y añado el número a la dirección URL antes de acceder a ella con urllib2. Si no obtengo la KEY sumo uno al número para ir al número siguiente y vuelvo a intentarlo. Así de fácil.
Ahora, os puedo decir que si esperáis un ratito, el código acaba saliendo.
Enhorabuena por vuestra nueva KEY o por la nueva habilidad que habéis adquirido.
¡Nos vemos en el próximo reto!