Introduction

Intenta explotar el sistema de galería de imágenes.
Getting the Flags
Reconocimiento Inicial
Comenzamos realizando un escaneo de puertos abiertos.

Ahora analizamos dichos puertos más en profundidad.

Esta flag "not set" nos indica un potencial XSS.
Vamos a ver qué directorios hay.

En el puerto 80 lo único que parece haber es un directorio llamado gallery, con varios subdirectorios a la vez. Vamos a ver en el aparente proxy (puerto 8080).
gallery.thm:8080 ├── config [200 2KB] ├── index [200 81MB] ├── 404.html [200 166B] ├── create_account.php [200 8B] └── login.php [200 2KB]
Vamos a ver cómo se ven las webs.

Aquí no parece haber nada.
Profundización
Hemos encontrado un panel de login, pero de momento no tenemos usuario y parece que el create_account no está habilitado.

Si miramos en el directorio uploads del puerto 8080, podemos ver lo siguiente:

Explotación
Vamos a probar con lo primero que se nos puede venir a la mente cuando vemos un panel de login personalizado: SQLi.

Escribimos el mismo payload arriba y abajo y...

Vaya vaya, parece que hemos pasado. SI investigamos un poco, podemos ver que en el perfil hay un campo que nos permite cambiar la imagen de avatar que tenemos.

Vamos a intentar subir una reverse shell. Nos ponemos en escucha, subimos la shell y...

Ahora estabilizamos la shell.

Intentamos leer la flag.

Pero no nos deja. Habrá que realizar movimiento lateral hacia mike. Antes de todo, vamos a ver si podemos encontrar el hash de la contraseña del administrador, pues nos lo preguntan antes que user.txt. Para ello buscamos la página e intentamos leer config.php.

Estos "requires" parecen interesantes, vamos a ver qué hay ahí.

Hemos encontrado un par de cosas, vamos a ver si podemos iniciar sesión en la base de datos.

Ahora seleccionamos las tablas que nos interese mirar.

Movimiento Lateral
Teniendo ya el hash, vamos a intentar pivotar hacia mike. Si miramos en /var/backups, podemos ver un backup de mike.

Si listamos archivos vemos que está el historial de comandos. Si leemos el historial:

Vamos a iniciar sesión con mike por SSH.

Ahora vamos a leer la flag de usuario.
Escalada de Privilegios
Nos toca escalar privilegios. Primero vamos a ver qué id y grupos tiene mike.

Nada interesante. Vamos con nuestra checklist de escalada.

Parece que hemos encontrado un script que podemos ejecutar como root. Vamos a ver de qué se trata.

Aquí hay un potencial fallo de seguridad, pues nano deja escribir comandos en su interior. Vamos a probar.

Buscamos en GTFOBins:

Vamos a probar.

Y nos da la shell.

Vamos a leer la flag.
Conclusión
Una máquina divertida y sencilla en la que hemos tocado varios temas
