Omisión de autenticación mediante inyección de SQL en la página de inicio de sesión

La inyección de SQL es una técnica utilizada para explotar los datos del usuario a través de las entradas de la página web mediante la inyección de comandos SQL como declaraciones. Básicamente, estas declaraciones pueden usarse para manipular el servidor web de la aplicación por parte de usuarios malintencionados.

  • La inyección SQL es una técnica de inyección de código que podría destruir su base de datos.
  • La inyección SQL es una de las técnicas de piratería web más comunes.
  • La inyección SQL es la colocación de código malicioso en declaraciones SQL, a través de la entrada de una página web.

Requisitos previos: Comandos SQL básicos .

Comprobación del formulario para inyección de SQL:

La forma más sencilla es poner «‘» (sin comillas) en el campo de nombre de usuario o contraseña. Si el servidor devuelve algún tipo de error SQL en la respuesta, lo más probable es que el sitio web sea vulnerable a un ataque de inyección SQL.
 

checking for SQL Injection

DESCARGO DE RESPONSABILIDAD: Atacar objetivos sin previo consentimiento mutuo es ilegal. Este artículo es para fines de conocimiento.
 

Omitir la autenticación:

1. Después de que confirmemos que el sitio es vulnerable a la inyección SQL, el siguiente paso es escribir la carga útil adecuada (entrada) en el campo de contraseña para obtener acceso a la cuenta. 

2. Ingrese el comando mencionado a continuación en el campo vulnerable y esto dará como resultado una omisión de autenticación exitosa.

Select id from users where username=’username’ and password=’password’ or 1=1--+

En el comando anterior:

  • Dado que 1 = 1 siempre es verdadero, y combinamos 1 = 1 con un operador OR, ahora no tenemos que saber el nombre de usuario o la contraseña, ya que cualquiera que sea el nombre de usuario, la contraseña, nuestro 1 = 1 siempre será verdadero, lo que nos dará acceso. a nuestra cuenta.
  • ‘ o 1=1–+(en el campo de contraseña) ‘ antes de que el operador OR se use para terminar las comillas simples de la contraseña (es decir, seleccione la identificación de los usuarios donde nombre de usuario = ‘nombre de usuario’ y contraseña = ‘contraseña’)
  • Entonces, después de insertar ‘ antes del operador OR, nuestro comando SQL se convierte en: Seleccionar id de usuarios donde nombre de usuario = ‘nombre de usuario’ y contraseña =» o 1 = 1–+
  • –+ se usa para ignorar el resto del comando. Su uso principal es ignorar el ‘ después de la contraseña y si no lo usamos, obtendremos el siguiente error.
  • Probemos la carga útil en nuestro portal de inicio de sesión (sin escribir –+ al final de la carga útil)

Es decir, si no usamos –+, entonces nuestro comando sql será: Seleccionar id de usuarios donde nombre de usuario = ‘nombre de usuario’ y contraseña =» o 1 = 1′ 
¿Por qué ese ‘ al final de 1? 

Son las contraseñas que cierran una comilla simple. Recuerde que ya dimos una comilla simple de cierre de nuestra contraseña. Pero el comando SQL de los sitios web simplemente pone ‘ al final de nuestra contraseña. (es decir, cualquier cosa que escribamos en el campo de contraseña, se almacena dentro de » de contraseña Supongamos que nuestra contraseña es hola El comando SQL correspondiente a esto será: Seleccionar id de usuarios donde nombre de usuario = ‘nombre de usuario’ y contraseña = ‘hola ‘. Aquí, no agregamos las comillas, pero el comando SQL agregó comillas en nuestro campo de entrada). Como el comando SQL pone ‘ al final de nuestro 1=1, nuestra misión falla. Entonces, para ignorar la comilla simple de cierre de la contraseña, usamos –+.

Ejecutando la Inyección:

Simplemente inserte el comando en la contraseña o el campo vulnerable y luego haga clic en iniciar sesión, luego se omitirá la autenticación.

executing the SQL Injection attackAuthentication Bypassed

Como podemos ver, finalmente desciframos el portal de inicio de sesión e iniciamos sesión correctamente.

Nota: A veces, algunos sitios web bloquean –+, en tales casos usa #. Ambos hacen el mismo trabajo.

Publicación traducida automáticamente

Artículo escrito por pradiptamukherjee y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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