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

Inyección de SQL

Cargado por

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

Inyección de SQL

Cargado por

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

Inyección de SQL: significado y definición

Una inyección de SQL, a veces abreviada como SQLi, es un tipo de


vulnerabilidad en la que un atacante usa un trozo de código SQL (lenguaje de
consulta estructurado) para manipular una base de datos y acceder a
información potencialmente valiosa. Es uno de los tipos de ataques más
frecuentes y amenazadores, ya que puede atacar prácticamente cualquier sitio
o aplicación web que use una base de datos basada en SQL (la mayoría).

¿Cómo funcionan los ataques de inyección de


SQL?
Para entender la inyección de SQL, es importante saber qué es el lenguaje de
consulta estructurado (SQL). SQL es un lenguaje de consulta que se utiliza en
programación para modificar y eliminar los datos almacenados en bases de
datos relacionales y acceder a ellos. Debido a que la gran mayoría de los sitios
y aplicaciones web utilizan bases de datos SQL, un ataque de inyección de
SQL puede tener consecuencias graves para las organizaciones.

Una consulta de SQL es una solicitud enviada a una base de datos por algún
tipo de actividad o función, como consultas de datos o una ejecución de código
SQL que se debe realizar. Un ejemplo es cuando la información de inicio de
sesión se envía a través de un formulario web para que el usuario pueda
acceder al sitio. Normalmente, este tipo de formulario web está diseñado para
aceptar solo tipos muy específicos de datos, como un nombre o una
contraseña. Cuando se agrega esa información, esta se coteja contra una base
de datos y, si coincide, se otorga acceso al usuario. Si no coincide, se niega el
acceso.

Los posibles problemas surgen porque la mayoría de los formularios web no


tienen forma de detener el ingreso de información adicional. Los atacantes
pueden aprovechar esta debilidad y utilizar los cuadros de entrada del
formulario para enviar sus propias solicitudes a la base de datos. Esto podría
permitirles llevar a cabo una amplia gama de actividades maliciosas, desde el
robo de datos confidenciales hasta la manipulación de la información de la
base de datos para sus propios fines.

Debido a la prevalencia de sitios web y servidores que utilizan bases de datos,


las vulnerabilidades de inyección de SQL son uno de los tipos de ciberataques
más antiguos y generalizados. Varios avances en la comunidad hacker
aumentaron el riesgo de este tipo de ataques; en especial, la llegada de
herramientas para detectar y aprovechar la inyección de SQL. Disponibles de
forma gratuita en desarrolladores de código abierto, estas herramientas les
permiten a los cibercriminales realizar ataques automáticamente en tan solo
minutos, ya que les permiten acceder a cualquier tabla o columna de la base de
datos con tan solo un clic y un proceso de ataque.

Signos de SQLi
Es posible que un ataque de inyección de SQL exitoso no muestre ningún
signo. Sin embargo, a veces hay algunas señales externas, como las
siguientes:

 Recepción de una cantidad excesiva de solicitudes en un plazo breve. Por


ejemplo, es posible que vea muchos correos electrónicos del formulario de
contacto de su página web.
 Anuncios que redirigen a sitios web sospechosos.
 Ventanas emergentes desconocidas y mensajes de error.

Tipos de inyección de SQL


Según la forma de acceso a los datos de backend y la extensión del posible
daño provocado, las inyecciones de SQL se pueden dividir en las siguientes
tres categorías:

SQLi en banda:

Este tipo de ataque SQLi es sencillo para los atacantes, porque usan el mismo
canal de comunicación para lanzar ataques y obtener resultados. Este tipo de
ataque SQLi tiene dos subvariantes:

 SQLi basado en errores: la base de datos genera un mensaje de error por las
acciones del atacante. El atacante obtiene información sobre la infraestructura
de la base de datos en función de los datos que generaron estos mensajes de
error.
 SQLi basado en unión: el atacante usa el operador UNION SQL para obtener
los datos deseados mediante la fusión de varias declaraciones Select en una
única respuesta HTTP.
SQLi inferencial (también conocida como inyección de SQL ciega):

En este tipo de SQLi, los atacantes usan patrones de respuesta y


comportamiento del servidor después de enviar cargas útiles de datos para
obtener más información sobre su estructura. Los datos no se transfieren de la
base de datos del sitio web al atacante, así que el atacante no ve la
información sobre el ataque en banda (por eso se usa el término “SQLi ciega”).
La SQLi inferencial se puede clasificar en dos subtipos:

 SQLi basado en el tiempo: los atacantes envían una consulta de SQL a la


base de datos, esto hace que la base de datos espere unos segundos antes de
responder si la consulta es verdadera o falsa.
 SQLi booleana: los atacantes envían una consulta de SQL a la base de datos,
así permiten que la aplicación responda mediante la generación de un
resultado verdadero o falso.
SQLi fuera de banda:

Este tipo de ataque de SQL se puede llevar a cabo en las siguientes dos
situaciones:

 Cuando los atacantes no pueden usar el mismo canal para lanzar el ataque y
compartir información; o
 cuando un servidor es demasiado lento o inestable para realizar estas
acciones.

Impacto de los ataques de inyección de SQL


Un ataque de inyección de SQL exitoso puede tener consecuencias graves
para una empresa. Esto se debe a que un ataque de inyección de SQL puede
lograr lo siguiente:

 Exponer datos sensibles. Los atacantes pueden extraer datos, lo que pone
en riesgo la exposición de datos sensibles almacenados en el servidor SQL.
 Comprometer la integridad de los datos. Los atacantes pueden alterar o
eliminar información del sistema.
 Comprometer la privacidad de los usuarios. En función de los datos
almacenados en el servidor SQL, un ataque puede exponer información
sensible del usuario, como direcciones, números de teléfono y detalles de
tarjetas de crédito.
 Otorgarle al atacante acceso de administrador al sistema. Si un usuario de
la base de datos tiene privilegios de administrador, un atacante puede acceder
al sistema a través de un código malicioso.
 Otorgarle a un atacante acceso general a su sistema. Si usa comandos
SQL débiles para verificar nombres de usuario y contraseñas, un atacante
podría acceder a su sistema sin conocer las credenciales del usuario. De esta
forma, el atacante puede causar problemas al acceder a información sensible y
manipularla.

El costo de un ataque de inyección de SQL no es solo financiero: también


puede involucrar la pérdida de la confianza de los clientes y daños de
reputación si se roba información personal, como nombres, direcciones,
números de teléfono y detalles de tarjetas de crédito. Cuando se pierde la
confianza del cliente, es difícil recuperarla.

Ejemplos de inyección de SQL


A lo largo de los años, muchas organizaciones fueron víctimas de SQLi. Estos
son algunos ejemplos de gran repercusión:

Fornite, 2019Fornite es un juego en línea con más de 350 millones de


usuarios. En 2019, se descubrió una vulnerabilidad de inyección de SQL que
les permitía a los atacantes acceder a las cuentas de los usuarios. La
vulnerabilidad se corrigió.
Cisco, 2018

En 2018, se encontró una vulnerabilidad de inyección de SQL en Cisco Prime


License Manager. La vulnerabilidad permitía que los atacantes tuvieran acceso
shell a los sistemas en los que estaba implementado el administrador de
licencias. Cisco ya corrigió la vulnerabilidad.

Tesla, 2014
En 2014, investigadores de seguridad anunciaron que podían quebrantar el
sitio web de Tesla con una inyección de SQL, lo que les permitiría obtener
privilegios de administrador y robar datos de los usuarios en el proceso.

También podría gustarte