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';