XUT_ / MACHINES / THM

0054

Light

THMMACHINENONEEASY

Introduction

light

Bienvenido a la aplicación de base de datos Light.

Estoy trabajando en una aplicación de base de datos llamada Light. ¿Te gustaría probarla? Si es así, la aplicación se ejecuta en el puerto 1337. Puedes conectarte usando nc 10.80.136.72 1337. Puedes usar el nombre de usuario smokey para empezar.

Getting the Flags

Reconocimiento Inicial

Comenzamos realizando un escaneo de puertos abiertos.

light

Ahora escaneamos más a fondo los puertos abiertos.


Profundización

Vamos a ver qué hay en el puerto 1337.

light

Parece que nos da la contraseña del usuario, ahora vamos a tratar de conseguir el username del administrador.

light

Cuando ponemos un usuario inexistente, la aplicación nos devuelve Username not found., esto significa que la aplicación está haciendo una query para mirar nombres de usuarios del estilo:

sql
SELECT password FROM users WHERE username=input

Esto significa que puede que exista una vulnerabilidad de tipo SQLi. Para comprobarlo introducimos una '.

light


Explotación

Vamos a intentar explotarla. Como parece que sigue ejecutando la query después de la comilla vamos a intentar introducir un comentario.

light

Parece que los comentarios están filtrados, vamos a ver cómo bypassearlo.

light

Parece que puede ser la palabra clave SELECT la que "no le gusta".

light

Parece que no puede ejecutar varias queries en una única línea y por eso se queda colgada. Vamos a probar con UNION SELECT.

light

En SQL, el operador > es un comparador que devuelve todo lo que coincida después de la string. Como en la primera comilla dejamos una aislada, cuando ponemos la última la string queda vacía (SELECT * FROM users WHERE username > ''). A efectos prácticos, esto nos devuelve todos los nombres. Sin embargo aquí nos topamos con el siguiente problema, que es que no conocemos el nombre de las tablas. Vamos a averiguarlos.

light

Después de probar varios payloads encontramos el que nos funciona. Así obtenemos los nombres de las tablas. Ahora toca extraer lo que necesitamos.

light

Así obtenemos el nombre del administrador.

light

Con esta otra query encontramos la flag. Pero nos falta la contraseña, por lo que vamos a obtener la contraseña.

light