Burpsuite - SQL injection vulnerability allowing login bypass

Datos Generales

  • Software: Burpsuite Community
  • Dificultad: Fácil
  • Duracion: 5 minutos
  • Observaciones: Se realizo una inyección SQL simple al login de la aplicación
  • CVSS 3.1: AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H 9.8 Crítico

Reconocimiento

  • Dada la naturaleza del laboratorio se presento un solo endpoint, el login de la aplciación

Explicación de la vulnerabilidad

La vulnerabilidad afecta a una base de datos que no tiene consultas parametrizadas y/o no esta sanitizada, lo que permite la inyección de código en una petición.

Una consulta esperada a la base de datos tiene la siguiente forma:

...academy.net/filter?category=Corporate+gifts

Y en la Base de Datos se ve de la siguiente manera:

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

en este sentido realizar la prueba de inyección SQL utilizando la prueba clasica ’ – donde:

  • : Se utiliza para terminar el valor esperado del campo category.
  • : Ingresa comentario

Solución del laboratorio

La página de login presenta 2 campos de input para validar los datos de usuario username y pasword

Probamos realizar la inyección simple ' -- en el campo username

Dando como resultado la solución del laboratorio


Mitigación

  • Realizar consultas parametrizadas Evitar la concatenación de entradas de usuario en las consultas.

  • Validación de entradas Asegurar que las entradas de usuario sean saneadas y validadas antes de procesarlas.

URL del laboratorio: https://portswigger.net/web-security/sql-injection/lab-retrieve-hidden-data