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