SQL injection vulnerability allowing login bypass
Laboratorio de Portswigger sobre 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
1
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
1
SELECT * FROM users WHERE username = ''OR 1=1 -- - ' AND password = 'password';



