No FA writeup

Descripción

Seems like some data has been leaked! Can you get the flag?

No FA solución

Al lanzar la instancia nos proporcionarán una aplicación flask en python, una copia de un fichero .db y el enlace a la página web.

Analizaremos primero el fichero .db. Para ello, veremos qué tipo de base de datos se ha utilizado:

file users.db

Esto nos devolverá ‘SQLite 3.x’, por lo que lo abriremos con SQLite:

sqlite3 users.db

Dentro, veremos todas las tablas que tiene la base de datos:

.tables

Esto nos devolverá sólo una tabla users. Podremos ver su contenido con:

select * from users;

Obteniendo la tabla completa:

Miraremos también los nombres de las columnas para saber qué significan:

.schema users

Tras obtener esta información, moveremos todas las contraseñas a un fichero separado para iniciar un ataque de fuerza bruta.

Primero, salimos de la consola de sqlite:

.quit

Luego, obtenemos de la base de datos los usuarios y las contraseñas:

sqlite3 -separator ':' users.db "SELECT username, password FROM users;" > hashes.txt

Guardaremos una copia con el formato usuario:hash para poder trazar de qué usuario será la contraseña que consigamos:

sqlite3 -separator ':' users.db "SELECT username, password FROM users;" > user:hashes.txt

Extraemos el diccionario de ‘rockyou’ para hacer el ataque de fuerza bruta:

sudo gzip -dk /usr/share/wordlists/rockyou.txt.gz

Lanzaremos el comando de hashcat para realizar el ataque de fuerza bruta:

hashcat -m 1400 hashes.txt /usr/share/wordlists/rockyou.txt

Obteniendo dos resultados:

599a4410e2af69d1585f16d82d4b5f0abf3ad09fa42b9d55d7b7a50671ccf8c1:apple123
c20fa16907343eef642d10f0bdb81bf629e6aaf6c906f26eabda079ca9e5ab67:apple@123

Siendo la contraseña ‘apple@123‘ del usuario ‘admin‘.

Al iniciar sesión, nos llevará a una ventana donde nos piden el 2FA:

En este caso, hemos visto si vemos el código proporcionado por el CTF, la aplicación web está hecha en Flask, por lo que el OTP se puede obtener de la cookie de inicio de sesión:

Completando así el CTF:

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *