Lab*1-Sqli

·

3 min read


sqli-lab*1.png


Laboratorio 1

En este caso vamos a ver el primer laboratorio de SQL Injection de la página de portswiger, en este caso vamos a poder utilizar una query especialmente diseñada. Para poder ver más información de lo habitual


Resolución

web-lab-1.png

En este caso, la página tiene un listado de imágenes, como una tienda online. Donde podemos comprar una variedad de cosas. Como observamos en la descripción del laboratorio. Este tiene la vulnerabilidad en el filtrado por categorías vamos a revisarlo

filtrado-web.png

En este caso, se aplica un filtrado por la categoría Accessories y solo vemos 3 artículos, vamos a interceptar esto con burpsuite para poder analizarlo

intercept.png

Obs:No es necesario utilizar Burpsuite en este laboratorio, pero para explicarlo mas facil lo vamos a utilizar

Vemos como se realiza el filtrado, en este caso el laboratorio nos muestra que la query que se está utilizando es algo así:

SELECT * FROM products WHERE category = 'Gifts' AND released = 1

Donde Gifts sería la categoría en cuestión, en nuestro caso Accesories. Nos podemos aprovechar de esto de la siguiente manera, nuestro input va en el lugar de Gifts. Entonces sí, ponemos una comilla simple ', luego de la categoría. La query queda algo así

SELECT * FROM products WHERE category = 'Accesories'' AND released = 1

Esto provoca un error, debido a que queda una comilla simple suelta. En estos casos se suele comentar el resto de la query para que no mar que ningún error, para comentar en SQL se utiliza "-- -" o "--" (Existen otras formas, pero vamos a utilizar estar por el momento)

SELECT * FROM products WHERE category = 'Accesories'-- -' AND released = 1

Esto quiere decir que luego del "-- -" no se va a interpretar nada y esto causa lo siguiente

query-web

Obs:El "+" es el espacio pero ulrencodeado, puedes selecciona todo el texto y darle click derecho y urlencodear o utlizar la combinacion de teclas ctrl + u

Esta sería la primera parte, la segunda parte sería la de representar más datos de lo normal. Para esto agregamos a nuestra query lo siguiente "Accesorioes' or 1=1-- -". Como se puede observar agregamos un "or 1=1" antes de comentar la query, esto lo único que hace es dar un valor "TRUE" o verdadero. En resumen, nuestra query dice que, filtre por la categoría Accesories o 1=1 como esto último es verdadero, nos va a representar toda la información, ignorando las categorías y el filtro de "released = 1". La query final sería la siguiente

SELECT * FROM products WHERE category = 'Accesories'or 1=1-- -' AND released = 1

Colocamos esto en la página y vemos los resultados

query-final.png

Obs: Ahora pongo la query en la pagina para que se observe mejor la diferencia, pero no tiene niguna diferencia si lo realizamos dede burpsuite

web-final.pgn

Como se puede observar, nos muestra más resultados incluso que antes, también nos sale un eslogan de "Laboratorio resuelto"


Conclusión

Esto sería el final del primer laboratorio de portswigger sobre SQL Injection, cualquier consulta sobre como utilizar burpsuite o como acceder a los laboratorios, los pueden poner en los comentarios