Lab*3-Sqli

·

3 min read


lab3.png


Laboratorio 3

En este laboratorio, vamos a ver varios temas interesantes. Primero que nada vamos a conocer sobre la estructura de una query, también vamos a ver que existen varios tipos de SQL, en este caso Oracle y para finalizar un UNION attack


Query SQL

Vamos a realizar un inciso antes de continuar con el laboratorio. Es importante conocer como funciona una query SQL(Structured Query Language)

Una query puede contar con 4 campos relevantes que serían "Base de datos, Tablas, Columnas y datos"

Query-sql.png

Esto quiere decir que a la hora de extraer información, necesitamos conocer estos campos. Más adelante (en laboratorios futuros) vamos a conocer querys para poder extraer esta información


Resolución

web-lab.png

En este laboratorio cambia un poco la página, pero la función es la misma. Algunos artículos que podemos filtrar por categorías nada raro.

web-category

Vamos a pasarlo por burpsuite para analizarlo con detenimiento

burp-category.png

Antes de empezar necesitamos conocer los distintos tipos de SQL, porque la query cambia dependiendo de esto. Les dejo un link donde pueden ver las distintas querys dependiendo del tipo de SQL (Link de la guia -> portsiwger-sql)

En este caso vamos a efectuar un UNION attack, este tipo de ataque lo que buscar es acertar en la cantidad de columnas en una tabla. El problema con esto es que cuando la web es vulnerable a este ataque, suele mostrar campos que luego podemos aprovechar, para luego nosotros representar en esos campos para representar datos

En este caso la web es vulnerable de nuevo en el filtrado, por tanto, necesitamos saber las columnas. Aunque desconozcamos esto, podemos realizar fuerza bruta, ya que la web suele representar campos cuando acertamos con la cantidad exacta de columnas(no siempre suele representar estos campos en la web, esto lo veremos en futuros laboratorios)

En este caso podemos usar otra query, para poder dar con el número de columnas, podemos hacer un "order by". Esto lo que ocasiona es un ordenamiento por el número de columnas que ingresemos

orderby-burp.png

error-web.png

Cómo se puede observar, no existe la columna número 100, si vamos reduciendo el número gradualmente, vamos a dar con el número de columnas

orderby2.png

Ahora podemos realizar el unión attack, pero en las SQL que son tipo Oracle. Hay que mencionar una tabla, de lo contrario nos dará un error. Una tabla típica suele ser dual

union-select-burp.png

union-select-web.png

Ahora solo queda utilizar un campo NULL para representar la versión y terminaríamos el laboratorio, para representar la versión en Oracle pueden mirar la guía que les compartí

query-final.png

version-web.png

Conclusión

Damos como finalizado este 3 laboratorio, ya saben que cualquier duda tienen la sección de comentarios