SQLI Lab 7
Skills
- SQL injection UNION attack, determining the number of columns returned by the query
Certificaciones
- eWPT
- eWPTXv2
- OSWE
- BSCP
Descripción
Este laboratorio
contiene una vulnerabilidad
de inyección SQL
en el filtro
de categoría
de productos
. Los resultados
de la consulta
se devuelven en la respuesta de la aplicación, por lo que puedes usar un ataque UNION
para recuperar datos de otras tablas. El primer paso de este tipo de ataque es determinar
el número
de columnas
que se devuelven en la consulta. Para resolver
el laboratorio
, hay que determinar
el número
de columnas
que devuelve la consulta realizando un ataque
de inyección SQL UNION
que devuelva una fila adicional con valores nulos
Resolución
Al acceder
a la web
nos sale esto
Si hacemos click
en alguno de los filtros
, nos filtrará los artículos por esta categoría
Capturamos
la petición
con Burpsuite
y añadimos
una comilla
simple '
Si enviamos esta petición nos devolverá un Internal Server Error
, lo cual quiere decir que estamos interfiriendo
con la consulta SQL
que se está produciendo
Si usamos este payload
mediante el cual añadimos una comparación que siempre
es verdad
como 1=1
, ignoramos el resto de la consulta SQL con -- -
y enviamos la petición nuevamente no obtenemos ningún fallo, lo que quiere decir que la inyección SQL
ha sido exitosa
1
/filter?category=Pets'+or+1=1--+-+
Usando order by
podemos saber el número
de columnas
que tiene la tabla
, empleando este payload
el resultado es un 200 OK
1
/filter?category=Pets'+order+by+3--+-+
Sin embargo, si empleamos este otro payload
donde hacemos order by 4
, nos devuelve un Internal Server Error
, esto se debe a que al no existir tres columnas nos arroja un fallo
1
/filter?category=Pets'+order+by+4--+-+
Una vez sabemos el número
de columnas
, usando union select
vamos a obtener la información, en este caso, como no hemos recibido ningún error, podemos descartar
que la base
de datos
usada sea Oracle
debido a que en Oracle
debemos añadir from dual
al final para que no se produzcan errores
1
/filter?category=Pets'+union+select+null,null,null--+-+