Lab 4 SQLi PortSwigger Academy

Introducción

LABORATORIO 4: SQL injection attack, querying the database type and version on MySQL and Microsoft

Para recuperar la versión de SQL, debemos identificar cuántas columnas hay y cuántas de esas columnas usan texto. La sintaxis es ligeramente diferente con este tipo de base de datos. En lugar de comentar el resto de la consulta usando el guión doble ‘–‘, necesitamos usar el signo almohadilla ‘ #’. Una vez que sepamos eso, podemos pasar a obtener la información de la versión.

Solución

PASO 1: Recuperar la versión SQL

Para recuperar la versión de SQL, debemos identificar cuántas columnas hay y cuántas de esas columnas usan texto. La sintaxis es ligeramente diferente con este tipo de base de datos. En lugar de comentar el resto de la consulta usando el guión doble ‘–‘, necesitamos usar el signo almohadilla ‘ #’. Una vez que sepamos eso, podemos pasar a obtener la información de la versión.

' Order by 1--
' Order by 2--
' Order by 3--

Ahora sabemos que tenemos 2 columnas, vamos a ver que columnas contienen datos de tipo string.

PASO 2: Determinar que columna contiene datos tipo string

‘ UNION+SELECT ‘a’,NULL#
' UNION+SELECT ‘a’,’b’#

Ambas peticiones devuelven código 200, lo que significa que ambas columnas contienen datos de tipo string.

PASO 3: Determinar la versión de la base de datos

Ahora que sabemos el número de columnas, podemos pedirle a la base de datos que devuelva la información de la versión en una de esas columnas. Para hacer esto, necesitamos pedir la información con @@version. Puede agregar la siguiente instrucción SQL al parámetro y luego reenviarla a la aplicación.

Los resultados se mostrarán en la parte inferior de la página, que en este caso es la versión 8.0.29. Esta es una técnica muy útil si desea identificar la versión específica de la base de datos que se está ejecutando. A continuación, podría utilizar esta información para buscar vulnerabilidades que afecten a esa versión.

No responses yet

Deja una respuesta

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