Lab 5 SQLi PortSwigger Academy

Introducción

LABORATORIO 5: SQL injection attack, listing the database contents on non-Oracle databases

Este laboratorio contiene una vulnerabilidad de inyección SQL en el filtro de categoría de producto. Los resultados de la consulta se devuelven en la respuesta de la aplicación para que pueda usar un ataque UNION para recuperar datos de otras tablas.

La aplicación tiene una función de inicio de sesión y la base de datos contiene una tabla que contiene nombres de usuario y contraseñas. Debe determinar el nombre de esta tabla y las columnas que contiene, luego recuperar el contenido de la tabla para obtener el nombre de usuario y la contraseña de todos los usuarios.

Solución

Una vez que hemos capturado la solicitud, podemos llevar a cabo un proceso de enumeración de las columnas estándar para determinar la cantidad de columnas y qué columnas contienen texto. Una vez que hemos identificado que existen dos columnas con texto, podemos consultar la tabla ‘information_schema’ para obtener los nombres de todas las demás tablas presentes en la base de datos.

'+UNION+SELECT+table_name,+NULL+FROM+information_schema.tables--

El siguiente paso será consultar las columnas de cada tabla. Ahora que tenemos información sobre los nombres de las tablas, podemos determinar cuáles podrían resultar interesantes. Al revisar los resultados, notamos la existencia de una tabla denominada ‘users_sajggv’. Es posible que esta tabla contenga información relevante en términos de credenciales de usuario, pero para avanzar, necesitamos conocer las columnas presentes en dicha tabla. A continuación se muestra una imagen que representa los resultados obtenidos al realizar una consulta para obtener los nombres de las columnas.

'+UNION+SELECT+column_name,+NULL+FROM+information_schema.columns+WHERE+table_name='users_sajggv'--

El siguiente paso será consultar los datos en las columnas. Una vez que conocemos los nombres de las columnas, podemos realizar una consulta a la tabla para obtener el contenido de las columnas ‘password_lftmpu’ y ‘username_ujjybo’.

'+UNION+SELECT+username_ujjybo,+password_lftmpu+FROM+users_sajggv--

Ahora para finalizar la resolución del reto, solo debemos introducir las credenciales del usuario administrator en el login de inicio de sesión.

No responses yet

Deja una respuesta

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