sábado, 18 de agosto de 2018

Explotación Web (III): : Solución Reto Hackerfire "Kept in Secret" (I)

En este post la solución a uno de los retos de explotación Web de la plataforma HackerFire.

Este reto tiene el título "Kept in Secret" y mi valoración sobre su dificultad es: ☆☆.

Su enunciado dice lo siguiente:


Now that you know the basic ideas behind SQL injection, can you use the techniques you've learned to extract the password for the admin?.

Solución: Tal y como dice el enunciado se trata de obtener la password del administrador mediante SQL injection.

Accedo a la web y me encuentro lo siguiente:
Tras el registro ("Register") y posterior introducción de usuario y password en el formulario "Login", busco ("Search") el usuario con el que me he conectado("a"); y obtengo lo siguiente:
En esta ocasión, para resolver este reto utilizo sqlmap, que, tal y como se dice en su página oficial, es una herramienta de código abierto de prueba de penetración que automatiza el proceso de detección y explotación de vulnerabilidades de inyección SQL.

En primer lugar obtengo las bases de datos mediante el siguiente comando: sqlmap.py -u "http://challenges.hackerfire.com:30005/profiles.php?search=a" --dbs
Como vemos, sqlmap detecta que el Sistema de Gestión de Base de Datos es 'MySQL' por lo que no es necesario realizar pruebas para otros DBMS´s y pulsamos la tecla "Enter":
Tras finalizar la ejecución, tal y como se observa en la figura anterior, veo que existen dos bases de datos: "information_schema" y "Secrets".

A continuación obtengo las tablas de la base de datos "Secrets" mediante el siguiente comando: sqlmap.py -u "http://challenges.hackerfire.com:30005/profiles.php?search=a" -D Secrets --tables
Como se ve en la figura anterior hay una única tabla, "users", en la base de datos "Secrets".

Obtengo ahora las columnas y el contenido de la tabla "users" mediante el siguiente comando: sqlmap.py -u "http://challenges.hackerfire.com:30005/profiles.php?search=a" -D Secrets -T users --dump
En la figura anterior veo las columnas de la tabla "users" y el vaciado o volcado del contenido de ésta lo deja en un fichero CSV. Abro ese archivo y veo que la fila correspondiente al nombre de usuario "admin" contiene lo siguiente:

1,Admin,admin,flag{pa55w0rd5_ar3_b1g_s3cr3t5},doing admin duties

Por tanto, ya tengo la password del administrador, que es la solución del reto:  flag{pa55w0rd5_ar3_b1g_s3cr3t5}.

En el siguiente post resolveré este reto de forma manual, es decir, sin utilizar ninguna herramienta para ello.

No hay comentarios:

Publicar un comentario