Información
LABORATORIO 2: SQL injection vulnerability allowing login bypass
Este laboratorio contiene una inyección SQL en el formulario de inicio de sesión. Para la resolución de este laboratorio utilizaremos el nombre de usuario administrator.
Solución
Nos dirigimos a la página de inicio de sesión.
Cuando introducimos un nombre de usuario y contraseña, la cadena de consulta se verá así:
SELECT * FROM users WHERE username = 'administrator' AND password = 'password'
Ingresamos una comilla simple en el nombre de usuario e inicio de sesión (hacemos lo mismo con la contraseña). Ambas comillas nos dan como resultado un error interno del servidor, lo que nos podría indicar que el formulario es vulnerable a la inyección SQL.
Vamos a ingresar:
administrator' or 1=1--
La cadena de consulta queda de la siguiente manera:
SELECT * FROM users WHERE username = 'administrator’ or 1=1--' AND password = 'password'
Independientemente de si el usuario administrator es un nombre de usuario válido o no, ya 1=1 que siempre devolverá verdadero y — comentará el resto de la declaración. Esto significa que vamos a poder iniciar sesión con el primer usuario de la tabla de usuarios.
Si ingresamos:
administrator’ or 1=1--
La consulta queda de la siguiente manera:
SELECT * FROM users WHERE username = 'administrator'--' AND password = 'password'
En la consulta anterior, dado que ‘AND password = ‘password’ está comentado y el nombre de usuario es ‘administrator’, nos iniciará en la cuenta de administrador.
El laboratorio queda resuelto.
No responses yet