Bueno, pues damos por terminado el reto #1 de Seguridad Web. Me alegra que se hayan puesto a jugar con el tantas personas, y, aunque no todos lo consiguieron, les doy la enhorabuena por intentarlo, y de paso decirles que estubieron muy cerca. He aquí la solución:

El primer nivel al que nos enfrentamos es un formulario en el que nos pide una pass:

Imagen


Para pasar este primer nivel, bastaba con fijarse en el código fuente de la web, en el que encontraríamos el siguiente código javascript:

var prefijo_pass = 'ultimos8_';
document.cookie = 'p='+prefijo_pass+'; expires=Fri, 1 Jan 2100 00:00:00 UTC; path=/';


Lo primero que podemos observar, es que se ha declarado una variable con el nombre "prefijo_pass" y "ultimos8_" como contenido. Obviamente con esto ya sabemos la mitad de la pass, ya que nos está diciendo que "ultimos8_" será el prefijo. Ahora bien, nos falta la otra mitad. Podemos deducir que "ultimos8_" se refieje a los ultimos 8 dígitos de algo, sería lo más normal... Así que como buenos h4x0rs revisamos la web, y con Cookies Manager+ (por ejemplo) vemos que se creo una sesión... Se nos enciende la bombilla y deducimos que los últimos 8 dígitos de la sesión será la otra mitad de la pass... Así que probamos como pass "ultimos8_xxxxxxxx" ejemplo: "ultimos8_d857c846" y:

Imagen


Listo. una vez aquí, podremos ver la lista de ganadores... Si tenemos suerte, todavia nadie paso el reto, y tenemos la oportunidad de ser los primeros =P. ¿Pero como agregar nuestro nick?, la respuesta es bien fácil, tendremos que ser administrador... Si volvemos a revisar Cookies Manager+, podremos ver que se creo otra cookie llamada "r" con el valor 4c614360da93c0a041b22e537de151eb si nos damos cuenta, es un hash md5, y nada mas buscarlo en google podemos saber su valor: "U".

Es posible que no pudierann pasar de este nivel las personas que no tuvieron experiencia vulnerando alguna web así, o, simplemente no se les ocurrió... Pero la solución era sencilla... Siempre que veamos U nos tiene que venir a la mente User xD por consiguiente, podemos deducir que el nombre de la cookie "r" hace referencia a "rango". Así que lo más probable es que para ser administradores, tengamos que cambiar el valor de la cookie de "U" a "A", pasando por md5 obviamente. Editamos la cookie con Cookies Manager+ y actualizamos la web:

Imagen


Listo. Somos admin... Y ya tenemos nuestro lindo formulario para agregar nicks:

Imagen


¡Pero alto!, no tan rápido, al intentar agregar un ganador, nos salta esta alerta:

Imagen


¿Puta madre, ahora que hago?, lo primero que se nos ocurre o se nos debería de ocurrir, es mirar el código fuente!, así que revisamos..... Y al final del mismo, podremos encontrar un comentario html, en el que contiene lo siguiente: TXV5JTIwY2VyY2E= . Obviamente es base64, se sabe fácil... Así que desencryptamos y obtenemos: "Muy cerca". ¿Agg la puta madre, como que muy cerca?, así es, muy cerca, exactamente la respuesta estaba ahí, delante de ustedes... El problema es que a $DoC que gusta trollear y, sabiendo que lo primero que probarian sería a agregar un ganador desde ese formulario.... El comentario en base64 es dinámico, y cambian según si ha sido pulsado el botón de agregar o sino . Así que... Hacemos click de nuevo en el hipervinculo "Admin" para refrescar la web y evitar el reenvio de la petición y, ahora si, revisamos el código fuente... y obtenemos: YWdyZWdhci5waHA= o lo que es lo mismo: agregar.php

Ya con esto teniamos todo lo necesario... Sabemos que ese script realizará la acción, y agregará el nuevo ganador... Así que sólo queda hacer la petición... ¿Como?, cada uno tiene su manera... Pero una rápida sería utilizando live http headers. Primero abrimos live http headers, escribimos el nick en el cuadro de texto y le damos a agregar... Obviamente nos saldrá la alerta y no se agregará el ganador, pero ahora es cuando debemos pulsar el botón "Replay" y sustituir la acción del "POST" de /web.php?s=admin a: /agregar.php y listo, nos responderá lo siguiente:

Imagen


Y nuestro nick estaría en la lista de ganadores:

Imagen


Fin de la solución. Aquí la lista de los ganadores, ¡felicidades!:

Imagen


Espero que les haya gustado... No estaba muy dificil, sólo era cuestión de lógica realmente.

El próximo será publicado en una semana, el día 14 de septiembre a las 00:00h (hora española)... ;)

Saludos, $DoC.
Soy un camaleón, en tu cama, leona ♪
:O

Haaaa yo hice lo del primer paso y no salió :S igual y ya andaba medio dormido :P Pero bueno, felicidades a los ganadores y a trabajar en el siguiente reto :D
Soy lo que soy gracias a que ustedes son lo que soN

Skype: bibetto.hax
Saludos mi brother, mejor explicacion no podia haber gracias por presentar retos asi y pues como darle la solucion al mismo si que ayuda mucho a mejorar... bueno mi brother que vengan mas retos y pues Gracias por la Diversion esperando el 14.
yo solo entre a la pagina de ganadores y hay no supe que hacer xddd
estoy matando el tiempo, mientras el tiempo nos mata lentamente..

Mostrar/Ocultar

un reto muy interesante y muy bien por que yo soy nuevo en esto y estoy aprendiendo mucho y les doy las gracias solo que teniendo la solucion enfrente no logro hacer administrador y me preguntaba si puedes explicarme un poquito mas o darme un tuto para leerlo sobre esto.....

Mostrar/Ocultar

lo siento pero es que no logro poner la "R" en "U" o "A" no me queda muy claro.....

muchas gracias por que estoy aprendiendo mucho gracias
----las pequeñas ideas son las mejores----
"r" es el nombre de la cookie (eso no tiene importancia), y U es el valor que contiene pero cifrado en md5... Esa parte consistía en saber que significaba ese hash en md5 (muy facil de saber sólo buscándolo en google) y como resultado se obtiene esa U, que se deduce que significa User y que para ser Admin, hay que poner el hash md5 del valor "A" deduciendo que significa Admin.
Soy un camaleón, en tu cama, leona ♪
Responder

Volver a “Auditoria Web”