Lab 8 SQLi PortSwigger Academy

Esta es la resolución de Lab 8 sobre SQLi de PortSwigger Academy. Nos pide encontrar una vulnerabilidad en el filtro category. Con esta vulnerabilidad, quiere que realicemos un ataque UNION para recuperar la cadena de versión de la base de datos. Es esencialmente lo mismo que el último laboratorio, pero esta vez estamos consultando un tipo diferente de base de datos.

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.

Tags:

No responses yet

Deja una respuesta

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