¿Cómo se realiza un ataque de inyección de cadena de conexión? [cerrado]

-1

¿Me gustaría saber cómo se realiza un ataque de inyección de cadena de conexión?

La cadena de conexión es un conjunto de pares clave / valor separados por un punto y coma. Las aplicaciones web las utilizan para conectarse a la base de datos.

Si una aplicación web crea una cadena de conexión mediante concatenación de cadena dinámica, para conectarse a la base de datos en función de la entrada proporcionada por los usuarios, esa aplicación web es vulnerable al ataque de inyección de cadena de conexión.

Explique cómo podría un atacante utilizar esta oportunidad para acceder a los datos de la base de datos y, si es posible, darme un ejemplo.

    
pregunta Varun CK 31.01.2018 - 10:29
fuente

1 respuesta

3

Algunos proveedores de bases de datos tienen el algoritmo "el último gana". Por lo tanto, si hay un par KEYWORD = VALUE que se encuentra más de una vez en la cadena de conexión, se usa el valor asociado con la última aparición.

Entonces, en una aplicación web, si un usuario ingresa el nombre de usuario y la contraseña; se genera una cadena de conexión para conectarse a la base de datos back-end. Por ejemplo:

Data Source = myDataSource; Initial Catalog = db; Integrated Security = no; User ID = myUsername; Password = XXX;

Después de ingresar el nombre de usuario y la contraseña, si el atacante agrega algo como

Intergrated Security = true;

la cadena se convierte en

Data Source = myDataSource; Initial Catalog = db; Integrated Security = no; User ID = myUsername; Password = XXX; Intergrated Security = true;

ahora aquí Seguridad integrada = no; está anulado por la Seguridad Integrada = verdadero; por el principio de "el último gana".

La aplicación web se conectará a la base de datos utilizando la cuenta del sistema operativo bajo la cual se ejecuta la aplicación para omitir la autenticación normal.

    
respondido por el Navi 31.01.2018 - 12:07
fuente

Lea otras preguntas en las etiquetas