Lab 3 SQLi PortSwigger Academy

Introducción

LABORATORIO 3: SQL injection attack, querying the database type and version on Oracle

En esta ocasión vamos a resolver el Lab 3 sobre SQLi de PortSwigger Academy.

Esta práctica de laboratorio requiere que realice una inyección SQL basada en UNION para recuperar la cadena de la versión de la base de datos. Podemos utilizar las mismas técnicas que hemos desarrollado hasta ahora.

Entonces, debemos realizar un ataque basado en UNION de inyección SQL para recuperar el número de versión de la base de datos. Es específico de las bases de datos de Oracle, por lo que la sintaxis puede ser diferente según el tipo de base de datos que esté probando.

Solución

PASO 1: Detectar la versión SQL

Necesitamos usar ‘ FROM DUAL’ ya que es una base de datos Oracle. Una vez que hayamos determinado que hay dos columnas, podemos determinar qué columnas contienen texto (deberían ser ambas en este laboratorio).

'+UNION+SELECT+NULL+FROM+DUAL --
'+UNION+SELECT+NULL,NULL+FROM+DUAL--

Una vez determinado que existen dos columnas, vamos a determinar que columnas contienen texto.

PASO 2: Determinar que columna contiene datos

'+UNION+SELECT+’abc’,NULL+FROM+DUAL--
'+UNION+SELECT+’abc’,’def’+FROM+DUAL--

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

Ahora que sabemos que ambas columnas contienen texto, podemos realizar una petición que nos muestre la versión de la base de datos. Podemos elegir que columna queremos que se inyecte la petición al mismo tiempo que debemos proporcionar el valor NULL a la columna que no vayamos a utilizar.

'+UNION+SELECT+BANNER,NULL+FROM+v$version--

Luego agregamos la consulta a la solicitud y el resultado se debe mostrar en la respuesta de la aplicación

Y el laboratorio estaría resuelto.

No responses yet

Deja una respuesta

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