Blog/SQL injection vulnerability allowing login bypass

SQL injection vulnerability allowing login bypass

Portswigger › Portswigger Labs › SQLI

Certificaciones

  • eWPT
  • eWPTXv2
  • OSWE
  • BSCP

Descripción

Este laboratorio contiene una vulnerabilidad de inyección SQL en la función de inicio de sesión. Para resolver el laboratorio, hay que realizar una inyección SQL que inicie sesión en la aplicación como el usuario administrador


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

Vemos que hay un apartado llamado My account, si pinchamos en él, nos llevará a un panel de login

Introducimos administrator' or 1=1-- - en el campo username y cualquier cosa en el campo password

Hemos logrado baipasear el panel de login, esto se debe a que por detrás, la consulta que se está realizando debe de ser parecida a esta

SELECT * FROM users WHERE username = 'user' AND password = 'password'

Entonces, con nuestra inyección SQL estamos cerrando la comilla ' que está abierta, posteriormente estamos introduciendo una condición que siempre es verdadera, la cual es un OR lo que hace que independientemente del nombre introducido accederemos al panel administrativo. La última parte sirve para ignorar el resto de la sentencia SQL

SELECT * FROM users WHERE username = ''OR 1=1 -- - ' AND password = 'password';
¿Tienes dudas?Escríbeme por WhatsApp