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.
Explotación de Inyección SQL en Aplicaciones Web
Los servidores web se comunican con los servidores de bases de datos cada vez que necesitan recuperar o almacenar datos de usuario. Las declaraciones SQL del atacante están diseñadas para que puedan ejecutarse mientras el servidor web obtiene contenido del servidor de aplicaciones. Compromete la seguridad de una aplicación web.
Ejemplo de Inyección SQL
Supongamos que tenemos una aplicación basada en registros de estudiantes. Cualquier estudiante puede ver solo sus propios registros ingresando una identificación de estudiante única y privada. Supongamos que tenemos un campo como el siguiente:
Identificación del estudiante:
Y el estudiante ingresa lo siguiente en el campo de entrada:
12222345 o 1=1 .
Así que esto básicamente se traduce en:
SELECT * from STUDENT where STUDENT-ID == 12222345 or 1 = 1
Ahora este 1=1 devolverá todos los registros para los que esto sea cierto. Básicamente, todos los datos de los estudiantes están comprometidos. Ahora, el usuario malintencionado también puede eliminar los registros de los estudiantes de manera similar.
Considere la siguiente consulta SQL.
SELECT * from USER where USERNAME = “” and PASSWORD=””
Ahora, los malintencionados pueden usar el operador ‘=’ de manera inteligente para recuperar información privada y segura del usuario. Entonces, en lugar de la consulta mencionada anteriormente, la siguiente consulta, cuando se ejecuta, recupera datos protegidos, que no están destinados a mostrarse a los usuarios.
Select * from User where (Username = “” or 1=1) AND (Password=”” or 1=1).
Dado que 1=1 siempre es cierto, los datos del usuario se ven comprometidos.
Impacto de la inyección SQL
El pirata informático puede recuperar todos los datos de usuario presentes en la base de datos, como detalles de usuario, información de tarjetas de crédito, números de seguro social y también puede obtener acceso a áreas protegidas como el portal del administrador. También es posible eliminar los datos del usuario de las tablas.
Hoy en día, todas las aplicaciones de compras en línea, las transacciones bancarias utilizan servidores de bases de datos de back-end. Entonces, en caso de que el pirata informático pueda explotar la inyección de SQL, todo el servidor está comprometido.
Prevención de la inyección de SQL
- Autenticación de usuario: validación de la entrada del usuario al predefinir la longitud, el tipo de entrada, el campo de entrada y la autenticación del usuario.
- Restringir los privilegios de acceso de los usuarios y definir a qué cantidad de datos puede acceder cualquier persona ajena a la base de datos. Básicamente, al usuario no se le debe otorgar permiso para acceder a todo en la base de datos.
- No utilice cuentas de administrador del sistema.
Inyección SQL básica y mitigación con ejemplo
Publicación traducida automáticamente
Artículo escrito por Avneet Kaur y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA