Bueno Antes que Nada Queremos Agradecer a Todos Los Participantes, y darles Nuestras Felicitaciones A los 5 Usuarios que Lo Completaron con éxito
Empecemos A Solucionar Este Reto Php para Abrir Camino a los Nuevos ;)
1) Entramos a
http://retosphp.host22.com/
y nos encontramos con este Imponente Panel de Administración,
por simple curiosidad Testeamos que sucede al logearnos con un usuario inexistente, probemos
Usuario: Test
Contraseña: Test
Y Sorprendentemente Aparece Exactamente la mima Web con nuestros queridos Campos Borrados,
Con la Diferencia q ahora en la la URL se muestra el nombre de la pagina "index.php"
Se nos Ocurre Mirar el Source de esta Web para ver si encontramos algo de Utilidad
Source:
<html>
<body style="background-image:url(a.jpg); background-attachment: fixed; background-position: top center; background-repeat: no-repeat;">
<form action="log.php" method="post">
<center><h4>Ingrese sus datos</h4><br>
USUARIO:<br>
<input type="text" name="user"><br>
CONTRASEÑA:<br>
<input type="text" name="password"><br>
<input type="submit">
</center>
</form>
</html>
<!-- Hosting24 Analytics Code -->
<script type="text/javascript" src="http://stats.hosting24.com/count.php"></script>
<!-- End Of Analytics Code -->
Y nos encontramos con la siguiente String
<form action="log.php" method="post">
Esto Dice que Al Clikear sobre nuestro querido boton Submit, los Parámetros Añadidos en el formulario (Usuario/Contraseña)
pasan como variables de un archivo log.php (lo primero q se me viene a la mente es que este formulario funciona
haciendo una petición sql a la base de datos comparando los datos introducidos con los existente en la BD)
Intentemos Bypassearla, probamos con algunos bypasses comunes en ambos campos como por ej.
x' or 1=1
Nuevamente aparece el molesto cartel de login
Probemos Con otro bypass
' OR '1'='1
De nuevo el formulario de logeo
Antes de Darnos por vencidos probamos con
' OR ''='
y POR UN DESCUIDO DEL PROGRAMADOR WEB, INGRESAMOS A LA PARTE PROHIBIDA Muajajajaja (Risa Siniestra XD)
vemos que nos dice las Palabras Mágicas
"Reto LFI encuentra el config.php"
(Todos Pensamos en nuestros adentros, esto ya no es un simple Bypass Ahora esta Web Mal Programada Me Reta a que le encuentre un LFI)
Investiguemos un poco para saber q es un LFI (Local File Inclution)
Que es el lfi? (esta explicacion no es mía es de n0b0dy de undersecurity.net)
Es una falla en la programacion de una aplicacion; falla mediante la cual se pueden incluir archivos que se encuentren en el servidor como por ejemplo el /etc/passwd o algún otro archivo de configuracion que nos provea de información para atacar el sitio.
Esta falla se produce en códigos similares a estos:
(pagina_lfi.php)
<?php
$pagina = $_GET['pagina'];
include($pagina);
?>
Aqui podemos ver que el código siguiente recepcionara mediante el método get (es decir se podrá ver mediante la url la variable a inyectar) también es posible que existan lfi mediante el método post pero eso es un poco mas complicado de encontrar; lo que hace este código es incluir una pagina dentro de otra.
Entonces veremos la url mas menos así:
http://server.cl/pagina_lfi.php?pagina=[archivolocalaincluir]
Deducción en nuestras URL se ve algo como esto
http://retosphp.host22.com/include.php?file=img.jpg
y la expoliación muestra algo así:
http://server.cl/pagina_lfi.php?pagina=[archivolocalaincluir]
Comparemos:
http://server.cl/pagina_lfi.php?pagina=[archivolocalaincluir]
http://retosphp.host22.com/include.php?file=img.jpg
Se parecen no es verdad?, Recordemos que en nuestros intentos de logeo y al revisar el Source encontramos 2 nombres de Archivos Importantes
index.php
log.php
Explotemos el LFI como dice la Expoliación, Quedaría Algo como esto:
http://retosphp.host22.com/include.php?file=index.php
y nuestro Programador Desastroso
(Sin animo de Ofender Dedalo es solo para crear ambiente, mis conocimientos en php son básicos y no quiero faltarte el respeto)
nos informa lo siguiente:
"Vas por buen camino debes encontrar el archivo de configuracion busca en otro archivo"
Interesante, Recordemos el archivo que encontramos en el Source (log.php), Repitamos el ataque, ahora incluyendo a log.php
http://retosphp.host22.com/include.php?file=log.php
Y esta nuevamente nos encontramos con información Sensible
"Vas por buen camino debes encontrar el archivo de configuracion busca en el directorio inc"
Recordemos que el reto Principal es encontrar el contenido de config.php, que según nos dice log.php se encuentra en la carpeta inc,
Esto esta mas q faci no? :)
Incluimos esa carpeta (inc) y el archivo config.php
http://retosphp.host22.com/include.php?file=inc/config.php
y nos encontramos con las Palabras Magicas:
aGRicmVha2VyIHkgRGVkYWxvIG1lIGVuc2XxYW4=
Felicidades!!!
Envia la solucion en un texto plano a los Moderadores de la Seccion
Un momento nos dice, en Texto Plano...
Mmmm esa codificacion me es familiar, creo q es Base64.
Probamos Desencriptarla con Base64 Decrypter
y su contenido es:
hdbreaker y Dedalo me enseñan
Anotamos una descripcion de lo q hicimos junto con la contraseña desencriptada y se la mandamos a los Moderadores
Se da Por Concluido Este Solucionario.
Dedalo & HD_Breaker.
Gracias a todos los Participantes. Se Felicita a:
1° pansinotdead
2° 5TU4RT
3° arthusu
4° k43l
* Sanko
PD: Los Links No Funcionan El host Murio