0% encontró este documento útil (0 votos)
75 vistas14 páginas

Inyeccion de SQL

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 PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
75 vistas14 páginas

Inyeccion de SQL

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 PPTX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 14

Administración de Recursos Informáticos

Inyeccion de SQL

Integrantes:
Arriaga Sánchez Brayan Guadalupe
Barrera Orta Jodxel Zaaid
Vázquez Osorio David
Contenido

¿Qué es una ¿Cómo Funciona


01 Inyección SQL? 02 una Inyección
SQL?

¿Cómo Evitar un
03 Ataque de Inyección
SQL?
01
¿Qué es una Inyección SQL?
Una inyección de SQL es una técnica de inyección de código utilizada
para modificar o recuperar datos de bases de datos SQL. Esto
mediante la inserción de sentencias SQL especializadas en un campo
de entrada, en donde un atacante es capaz de ejecutar comandos que
permiten:

• Recuperación de información de la base de datos


• Destrucción de datos confidenciales
• Entre otros comportamientos manipuladores

Por medio de estos comandos SQL, el usuario no autorizado es capaz


de:

• Suplantar la identidad de un Usuario con más privilegios


• Convertirse a sí mismo o a otros en administradores de las BD
• Manipular datos existentes, modificar transacciones y recuperar o
destruir todos los datos del servidor
La inyección de SQL suele producirse a través de internet mediante él
envió de sentencias SQL maliciosas a un punto final de la API
proporcionado por un sitio web o un servicio. En casos más extremos,
la inyección de SQL le puede permitir al atacante acceder a la raíz de
una computadora, lo que permite tener el control total de la misma.
¿Cómo Funciona una Inyección
SQL?
02
Un campo de consulta SQL que se supone que está reservado para
un tipo dato en particular como un numero o una cadena de texto,
se pasa en su lugar información inesperada, como un comando
SQL malicioso, cuando se ejecuta va más allá de los limites
previstos, permitiendo un comportamiento potencialmente
sospechoso.

Un campo de consulta se suele rellenar a partir de los datos


introducidos en formularios de páginas web, que es donde
normalmente se realizan las inyecciones de SQL.
Comparación entre Sentencia SQL Normal vs Maliciosa
Consulta Normal:
Por ejemplo, tenemos una cadena id_estudiante y la transformamos una
sentencia SQL. Con el objetivo de encontrar a un estudiante en una lista de
estudiantes que coincida con el id_estudiante introducido y una vez que se
encuentre, se devolverá el registro de ese estudiante.

id_estudiante = getRequestString(“id_estudiante”);
buscarEstudiante = “SELECT * FROM estudiantes WHERE id_estudiante = ” + id_estudiante

Si un estudiante ingresa un id por ejemplo de 117 en un formulario de una página


web que pida ingresar una matrícula, la consulta SQL se vería de esta forma

“SELECT * FROM estudiantes WHERE id_estudiante = 117”

Este comando se traerá todo el registro del estudiante con matrícula 117, esto es lo
que se espera por parte de los programadores de API.
Consulta de Inyección SQL (Maliciosa)

Existen muchas formas de inyección SQL, una de las más famosas es donde se valida
una consulta como verdadera. Por ejemplo:

“SELECT * FROM usuarios WHERE user = ‘atacante’ AND pass = ‘mi_clave’ OR 1=1 ”

Podemos observar que esta consulta está formada por el condicional OR que devolverá
TRUE con que al menos cumpla una de las 2 expresiones por lo que siempre será
verdadero ya que 1=1, y cuando esto se ejecute en la base de datos arroja todos los
registros de la tabla en este caso usuarios.
Aunque el nombre y el password sean incorrectos, ya que como se mencionó OR 1=1
siempre va a hacer verdadero.
Tipos de inyección SQL
Mediante Introducción de datos del usuario: Esta es la forma más frecuente para
realizar un ataque de SQL y se lleva a cabo en formularios de páginas web, ya que si
no existe seguridad a la hora de introducir los datos existe una vulnerabilidad muy
alta de que ocurra una inyección SQL.

Mediante la modificación de cookies: Las cookies son archivos que se viven dentro
del navegador y facilitan a los sitios web información sobre los usuarios y los
ciberdelincuentes son capaces de modificar las cookies de manera que, cuando
transmitan información al servidor web, estos envían código SQL a la base de datos.

Mediante herramientas de hackeo automáticas: Existe una forma más sencilla de


realizar inyección de SQL, hay herramientas automáticas de inyección, como
SQLMAP, que detecta y aprovecha las vulnerabilidades en la inyección SQL
presentes en un sitio web determinado y en su base de datos.
03
¿Cómo Evitar un Ataque de Inyección
SQL?
Existen varios métodos para reducir el riesgo de que se produzca una fuga de datos
debido a una inyección de código SQL.

Escapar las entradas del usuario: Un enfoque común es escapar caracteres


especiales en la entrada del usuario, este proceso puede ayudar a proteger contra
los ataques de inyección de SQL. Por ejemplo, en PHP, puedes escapar las cadenas
antes de construir las consultas utilizando la función.

mysqli_real_escape_String()

Utilizar Sentencias preparadas: Se pueden utilizar sentencias preparadas para


evitar inyecciones SQL. Una sentencia preparada es una plantilla de consulta SQL,
en la que especificas parámetros en una fase posterior para ejecutarla.

Ejemplo en PHP y MySQL:

$query = $mysql_connection → prepare(“SELECT * FROM usuarios WHERE user = ? AND pass = ?”);
$query → execute(array($username, $password))
Utilizar un buen gestor de contraseñas: Muchos administradores de contraseñas
alertan al usuario cuando un sitio web que utiliza ha sufrido un ataque. Busque un
administrador que proporcione funcionalidad en varias plataformas para poder
usar las contraseñas en todos sus dispositivos.

Crear contraseñas seguras: Si utilizas una contraseña distinta para cada cuenta,
reducirá el riesgo. Además de practicar hábitos de crear contraseñas fuertes, como
usar contraseñas con al menos 12 caracteres y guardarlas de forma segura.
REFERENCIAS
Belcic, I. (2023, 23 febrero). ¿Qué es la inyección de SQL y cómo funciona? ¿Qué Es la
Inyección de SQL y Cómo Funciona? https://www.avast.com/es-es/c-sql-injection
¿Qué es la inyección de código SQL? | Cloudflare. (s. f.).
https://www.cloudflare.com/es-es/learning/security/threats/sql-injection/

¿Qué es la inyección de SQL? Definición y explicación. (2023, 19 abril).


latam.kaspersky.com. https://latam.kaspersky.com/resource-center/definitions/
sql-injection
PHP: inyección de SQL - manual. (s. f.). https://www.php.net/manual/es/security.
database.sql-injection.php

Molinaro, D. (2022, 17 mayo). ¿Qué es la inyección de SQL? ¿Qué Es la Inyección de SQL?


https://www.avg.com/es/signal/sql-injection

También podría gustarte