Inyeccion de SQL
Inyeccion de SQL
Inyeccion de SQL
Integrantes:
Arriaga Sánchez Brayan Guadalupe
Barrera Orta Jodxel Zaaid
Vázquez Osorio David
Contenido
¿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:
id_estudiante = getRequestString(“id_estudiante”);
buscarEstudiante = “SELECT * FROM estudiantes WHERE id_estudiante = ” + id_estudiante
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.
mysqli_real_escape_String()
$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/