Lab 2 SQLi PortSwigger Academy

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *