0% encontró este documento útil (0 votos)
4 vistas4 páginas

SQL Injection

La inyección SQL es un ataque informático que explota vulnerabilidades en aplicaciones que utilizan bases de datos, permitiendo a los atacantes ejecutar código SQL malicioso. Este tipo de ataque puede resultar en el robo de información sensible o el control total de la base de datos. Para prevenir estos ataques, se recomienda validar entradas, utilizar parámetros preparados y mantener el software actualizado.

Cargado por

Nicolas
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
4 vistas4 páginas

SQL Injection

La inyección SQL es un ataque informático que explota vulnerabilidades en aplicaciones que utilizan bases de datos, permitiendo a los atacantes ejecutar código SQL malicioso. Este tipo de ataque puede resultar en el robo de información sensible o el control total de la base de datos. Para prevenir estos ataques, se recomienda validar entradas, utilizar parámetros preparados y mantener el software actualizado.

Cargado por

Nicolas
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 4

TRABAJO FINAL: SQL INJECTION

NICOLAS SANCHEZ TRUJILLO


DANIEL LEANDRO GUTIERREZ OSPINA

CORPORACIÓN INSTITUTO DE ADMINISTRACIÓN Y FINANZAS CIAF


ESCUELA DE INGENIERÍA DE SOFTWARE
TECNOLOGÍA EN DESARROLLO DE SOFTWARE
PEREIRA, RISARALDA
2024
Introducción
La inyección SQL es una técnica de ataque informático de gran alcance que apunta a las
aplicaciones que utilizan bases de datos para almacenar y gestionar información. Su
objetivo es vulnerar la seguridad de estos sistemas introduciendo código SQL malicioso en
entradas que deberían contener datos legítimos del usuario. La aplicación, al no contar con
las medidas de seguridad adecuadas, interpreta y ejecuta este código dentro de la base de
datos, potencialmente causando daños graves.

Este tipo de ataque es especialmente peligroso debido a su sigilo y versatilidad. Un atacante


con conocimiento básico de SQL puede lanzar inyecciones para lograr diferentes
propósitos, desde el robo de información confidencial (nombres de usuario, contraseñas,
datos financieros) hasta la manipulación o eliminación de registros sensibles. En el peor
escenario, incluso podrían tomar control completo de la base de datos, permitiendo la
alteración o destrucción de la información almacenada.

La inyección SQL se aprovecha de una debilidad fundamental en la forma en que algunas


aplicaciones construyen y ejecutan las consultas SQL. Si la aplicación concatena
directamente las entradas del usuario a la consulta, sin mecanismos de validación o filtrado
adecuados, se crea una brecha por la que se puede inyectar código malicioso.
Explicación de la vulnerabilidad
Imaginemos un formulario de inicio de sesión donde el usuario ingresa su nombre de
usuario y contraseña. Una aplicación vulnerable podría construir la siguiente consulta SQL
para validar las credenciales:
SELECT * FROM usuarios WHERE nombre_usuario = '$nombre_usuario' Y password =
'$contraseña';
En este escenario, si el campo nombre_usuario permite entrada libre y el atacante introduce
lo siguiente:
admin' OR '1' = '1;
La consulta final quedaría así:
SELECT * FROM usuarios WHERE nombre_usuario = 'admin' OR '1' = '1;
Analicemos lo que sucede:
-​ La condición 'admin' OR '1' = '1 siempre será verdadera (porque 1 siempre es igual
a 1), independientemente de la contraseña real del usuario admin.
-​ La aplicación, al no validar la entrada, ejecuta la consulta completa.
-​ Como la condición es verdadera, la consulta devolverá todos los registros de la tabla
"usuarios", incluyendo el usuario admin con su contraseña correcta.
De esta forma, el atacante logra acceder al sistema sin necesidad de conocer la contraseña
real. Este es un ejemplo básico, pero los atacantes pueden utilizar técnicas más complejas
para robar información o manipular datos sensibles dentro de la base de datos.
Existen diferentes métodos para explotar la vulnerabilidad de inyección SQL. Algunos de
los más comunes incluyen:
●​ Inyección booleana: Insertando operadores lógicos (OR, AND) para alterar la
lógica de la consulta y obtener resultados no autorizados.
●​ Inyección de Unión (UNION): Utilizando la cláusula UNION para combinar los
resultados de la consulta maliciosa con los resultados legítimos, permitiendo ver
información adicional.
●​ Inyección de comentarios: Introduciendo comentarios (--) para evitar que parte de
la consulta se ejecute, pero permitiendo la ejecución de código malicioso posterior.
La severidad del daño causado por una inyección SQL depende de los privilegios que posea
la cuenta utilizada por la aplicación para conectarse a la base de datos. Si la cuenta tiene
acceso administrativo, el atacante podría realizar acciones mucho más graves, como borrar
o modificar toda la información almacenada.
Conclusión
La inyección SQL es un recordatorio constante de la importancia de la seguridad en las
aplicaciones que interactúan con bases de datos. Implementar medidas de prevención
sólidas es crucial para mitigar este tipo de ataques.
A continuación, algunas recomendaciones para fortalecer las defensas:
●​ Validación y Filtrado de Entradas: Asegurar que las entradas del usuario
coincidan con un formato esperado y no contengan caracteres especiales que puedan
utilizarse para inyectar código.
●​ Parámetros Preparados: Utilizar parámetros preparados en lugar de concatenar
directamente las entradas del usuario a la consulta. Los parámetros se pasan por
separado a la consulta, evitando la inyección de código malicioso.
●​ Procedimientos Almacenados: Aprovechar los procedimientos almacenados en la
base de datos, ya que la lógica de la consulta se define previamente y los parámetros
se pasan por separado, evitando la inyección.
●​ Mantener Software Actualizado: Aplicar actualizaciones de seguridad de forma
regular, ya que los parches suelen incluir correcciones para vulnerabilidades de
inyección SQL conocidas.
●​ Pruebas de Penetración: Realizar pruebas de penetración periódicas para
identificar y corregir vulnerabilidades.

También podría gustarte