SQLI Lab 3
Skills
- SQL injection attack, querying the database type and version on Oracle
Certificaciones
- eWPT
- eWPTXv2
- OSWE
- BSCP
Descripción
Este laboratorio
contiene una vulnerabilidad
de inyección SQL
en el filtro
de categoría
de productos
. Utilizaremos un ataque UNION
para obtener los resultados de la consulta, para resolver
el laboratorio
, hay que mostrar la versión
de la base
de datos
Resolución
Al acceder
a la web
nos sale esto
Pinchamos en alguna de las categorías
, capturamos la petición
con Burpsuite
y le añadimos
una '
a category
Si enviamos
la petición
nos dará un Internal Server Error
debido a que hemos logrado interferir
con la consulta SQL
que se está haciendo
Si usamos este payload
, ya habremos solucionado
el error
que se estaba produciendo en la consulta SQL
y se mostrará lo siguiente
1
/filter?category=Lifestyle'or+1=1+--+-+
Esto se debe a que la consulta SQL
que se debe estar haciendo debe ser esta
1
SELECT * FROM products WHERE category = 'Lifestyle'
Lo que hacemos cuando inyectamos ' or 1=1-- -
es cerrar la '
del campo category
y usar or 1=1
para que siempre sea verdad y por lo tanto exista, posteriormente con -- -
lo que hacemos es ignorar el resto de la query
1
SELECT * FROM products WHERE category = 'Lifestyle' OR 1=1 -- - '
Usando order by
podemos identificar cuantas columnas
tiene la tabla
, si ponemos un número
de columnas
que existe
no obtendremos
ningún error
1
/filter?category=Lifestyle'order+by+2--+-+
Sin embargo, si ponemos un número
de columnas
que no existe
, obtendremos un error
, esto es debido a que estamos ante una SQLI Error Based
1
/filter?category=Lifestyle'order+by+3--+-+
A continuación usamos union select
para señalar ambos campos, usamos from dual
al final porque en este caso la base de datos es Oracle
1
/filter?category=Lifestyle'union+select+null,null+from+dual--+-+
Con este payload
lo que hacemos es listar
la versión
de la base
de datos
, en PayloadsAllTheThings https://github.com/swisskyrepo/PayloadsAllTheThings.git podemos encontrar diferentes formas de enumerar
bases de datos y de practicar inyecciones SQL
1
/filter?category=Gifts'+union+select+null,banner+from+v$version--+-