¡ Buenas !
Me pude sacar la facultad de encima y juro que tenía muchas ganas de retomar con el blog, ESTA VEZ para no dejarlo tirado más. Antes de que finalice el año voy a contar un poco como me fue este año en lo personal y profesional, fue muy satisfactorio. Así que bueno, arranquemos con la entrada como corresponde.
En una serie de 13 desafios, vamos a realizar el CTF de Infosec (nuevamente), pero en este caso nos ofrece un hacking challenge algo (en lo personal) mas divertido: hacking web apps.
Como ven, en la parte superior izquierda se encuentran los niveles, nosotros empezaremos (obviamente) desde el Level 1.
El ejercicio trata de introducir una alerta con el texto ‘Ex1’. Para ver su funcionamiento, primero enviamos una consulta valida, en el campo Site URL.
Lo mas lógico fue probar “alert(‘Ex1’)“, pero no dio resultado. Parece que se realizan ciertas validaciones client-side, ya que obtenemos una alerta de ‘Please match the request format’.
Podemos revisar el código con un gran ayudante, FireBug; para así tratar de ver las restricciones que tenemos dentro de este nivel. En la solapa script tenemos información importante sobre todos los scripts cargados en el sitio, que prestandole atención hay un archivo particular y muy llamativo: ex1.js.
Leyendo el .js existe una función que reemplaza nuestros ‘<>’ a su valor correspondiente en HTML.
Lo que se me ocurrió es crear un breakpoint en la sentencia siguiente, para ver que esta almacenando la variable siteName (la linea anterior). En este caso, lo relleno con el código:
< script>alert(“Ex1”)< /script>
Se ejecutara el breakpoint. Parandonos en la variable siteName, vemos como la restricción ha cambiado nuestro valor con los reemplazos de ‘< >’.
Entonces, ¿que hacemos? Editemos la property y creemos una nosotros, con el valor que querramos a la variable siteName.
¿Y con que lo rellenamos? Con el valor que le asignaremos a siteName:
siteName = ‘< script>alert(“Ex1”)< /script>’
Le damos a play y veamos que sucede.
Divertido por ser el primer nivel. Nos vemos en el proximo.
DynamicSec.