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!