SQL injection vulnerability in WHERE clause allowing retrieval of hidden data
Laboratorio de Portswigger sobre SQLI
Certificaciones
- eWPT
- eWPTXv2
- OSWE
- BSCP
Descripción
Este laboratorio contiene una vulnerabilidad de inyección SQL en el filtro de categoría de productos. Cuando el usuario selecciona una categoría, la aplicación realiza esta consulta SQL SELECT * FROM products WHERE category = 'Gifts' AND released = 1. Para resolver el laboratorio hay explotar un SQL Injection que haga que la aplicación muestre uno o más productos no lanzados
Guía de SQLI
Antes de completar este laboratorio es recomendable leerse esta guía de SQLI https://justice-reaper.github.io/posts/SQLI-Guide/
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. Esto quiere decir que la inyección SQL ha sido exitosa y nos devuelve todos los productos, independientemente de la categoría a la que pertenecen
1
/filter?category=Clothing%2c+shoes+and+accessories'+or+1=1--+-




