Pedir presupuesto

SQL Injection en aplicaciones web

Muchos habreis oido hablar de los ataques a webs mediante SQL Injection, que es una vulnerabilidad informática a la hora de la validación de las entradas a una base de datos.

«Una inyección SQL sucede cuando se inserta o «inyecta» un código SQL «invasor» dentro de otro código SQL para alterar su funcionamiento normal, y hacer que se ejecute maliciosamente el código «invasor» en la base de datos.» Wikipedia.

En este artículo podeis ver ejemplos del uso de SQL Injection por ejemplo para:

  • acceder con un nombre de usuario para conseguir acceso a muchos sitios que requieren autenticación.
  • permitir extraer información sobre la estructura de tablas y campos de la base de datos.
  • insertar o modificar información que permitirían crear nuevas cuentas de usuario o modificar las existentes.
  • incluso la eliminación o vaciado de tablas.

Para que entendais un poco de que va la historia, os dejo un ejemplo que explican detalladamente en Wikipedia:

La vulnerabilidad puede ocurrir cuando un programa «arma» descuidadamente una sentencia SQL, con parámetros dados por el usuario, para luego hacer una consulta a una base de datos. Dentro de los parámetros dados por el usuario podría venir el código SQL inyectado.

Al ejecutarse esa consulta por la base de datos, el código SQL inyectado también se ejecutará y podría hacer un sinnúmero de cosas, como insertar registros, modificar o eliminar datos, autorizar accesos e, incluso, ejecutar código malicioso en el computador.

Asumiendo que el siguiente código está en una aplicación web y que existe un parámetro «nombreUsuario» que contiene el nombre de usuario que nosotros le demos, la inyección SQL es posible:

[mysql]»SELECT * FROM usuarios WHERE nombre = ‘» + nombreUsuario + «‘;»[/mysql]

Si el usuario escribe su nombre, digamos «Alicia», nada anormal sucedería, la aplicación generaría una sentencia SQL similar a la siguiente, que es perfectamente correcta, en donde se seleccionaría al usuario «Alicia»:

[mysql]SELECT * FROM usuarios WHERE nombre = ‘Alicia’;[/mysql]

Pero si un usuario malintencionado escribe como nombre de usuario: «Alicia’; DROP TABLE usuarios; SELECT * FROM datos WHERE nombre LIKE ‘%», se generaría la siguiente consulta SQL, (el color verde es lo que pretende el programador, el azul es el dato, y el rojo, el código SQL inyectado):

[mysql]SELECT * FROM usuarios WHERE nombre = ‘Alicia’;
DROP TABLE usuarios;
SELECT * FROM datos WHERE nombre LIKE ‘%’;[/mysql]

La base de datos ejecutaría la consulta en orden, seleccionaría el usuario ‘Alicia’, borraría la tabla ‘usuarios’ y seleccionaría datos que quizá no están disponibles para los usuarios web comunes. En resumen, cualquier dato de la base de datos está disponible para ser leído o modificado por un usuario malintencionado.

Referencias

Vía: DragonJar | Wikipedia

¿Te ha gustado?, Comparte!!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

¡Pide tu presupuesto!

Completa los campos para poder enviarte un presupuesto

Todos y tu presupuesto son a medida y totalmente personalizados, entendemos que dos proyectos online no pueden ser iguales y que cada cliente tiene unos objetivos y necesidades muy diferentes, es por eso que para elaborar un presupuesto, necesitamos saber de ti, tu proyecto y objetivos.

Los campos marcados con (*) son obligatorios.

La comunicación enviada quedará incorporada a un fichero del que es responsable COLORDEU. Esta comunicación se utilizará exclusivamente para tratar sus datos para atender su solicitud, siempre de acuerdo al Reglamento (UE) 2016/679 (RGPD), la Ley Orgánica 15/1999 (LOPD) y el Real Decreto 1720/2007 de desarrollo de la LOPD), sobre protección de datos. Sus datos no se comunicarán a terceros, excepto por obligación legal, y se mantendrán mientras no solicite su cancelación. En cualquier momento usted puede ejercer los derechos de acceso, rectificación, portabilidad y oposición, o si procede, a la limitación y/o cancelación del tratamiento, comunicándolo por escrito, indicando sus datos personales mediante un email a hola@colordeu.es