SQL injection vulnerability allowing login bypass – PortSwigger Write Up
En este post vamos a estar resolviendo el laboratorio de PortSwigger: “SQL injection vulnerability allowing login bypass.”
Pasos
Dirígete a la página de inicio de sesión.
Cuando ingresamos un nombre de usuario y contraseña, la cadena de consulta se verá así:
❯ SELECT * FROM users WHERE username = ‘administrator’ AND password = ‘password’
Ingresé una comilla simple en el nombre de usuario e inicio de sesión (lo mismo con la contraseña). Ambos dan como resultado un error interno del servidor, lo que muestra que podría ser vulnerable a la inyección de SQL.
En este caso si ingreso: administrator’
or 1=1--
La cadena de consulta:
❯ SELECT * FROM users WHERE username = ‘administrator' or 1=1--’ AND password = ‘password’
Independientemente de si ‘administrator’es un nombre de usuario válido o no, ya 1=1que siempre devolverá verdadero y –comentará el resto de la declaración. Esto significa que podré iniciar sesión con el primer usuario según la tabla de usuarios.
o si ingresamos:
administrator’ or 1=1--
❯ SELECT * FROM users WHERE username = ‘administrator'--’ AND password = ‘password’
En la consulta anterior, esta vez, dado que ‘AND password = ‘password’está comentado y el nombre de usuario es ‘administrador’, nos iniciará en la cuenta de administrador.
De esta forma, conseguimos resolver el laboratorio:
¡Un saludo y espero que os sirva de apoyo!