SQL Injection con ejemplos

Patxi Echarte, June 7th, 2006

Vía Digg leo un artículo sobre inyección de SQL cuya lectura recomiendo a todas aquellas personas que no hayan oído hablar del tema. El artículo está centrado en mostrar posibles vulnerabilidades de aplicaciones desarrolladas sobre ASP.NET y SQL Server, pero muchos de los conceptos que se muestran son aplicables a otras bases de datos y plataformas de desarrollo, como MySQL y PHP.

En el artículo se muestran vulnerabilidades básicas como el uso de cadenas similares a ' OR 1=1; -- como nombre de usuario para conseguir acceso a muchos sitios que requieren autenticación, y continúa aportando más ejemplos que permiten extraer información sobre la estructura de tablas y campos de la base de datos, mecanismos para insertar o modificar información que permitirían crear nuevas cuentas de usuario o modificar las existentes, o ataques más destructivos y muchas veces más sencillos, como la eliminación o vaciado de tablas.

El desarrollo de aplicaciones web no es algo tan fácil como muchos desarrolladores piensan, y es que hay multitud de cuestiones a tener en cuenta, cuestiones entre las que la seguridad toma un papel fundamental. Sin embargo la mayoría de estos riesgos, como los ataques basados en cross-site-scripting (XSS) o SQL Injection, podrían ser evitados de una forma bastante amplia siendo estrictos en el tratamiento que se hace de los datos que envían los usuarios, teniendo en cuenta que el usuario no tiene porque enviar los datos como esperamos, que bien puede equivocarse o intentar ataques de forma premeditada. Para ello es básico, en cada programa que interactúe con el usuario, tener muy claras las variables que se aceptan, comprobar sus contenidos con reglas de validación, controlar los mensajes de error que devuelve el programa para no dar más información de la necesaria, y ponernos en la piel del atacante pensando cómo podríamos sobrepasar estas medidas.

Si esto del SQL Injection te ha abierto la curiosidad te recomiendo también la lectura de este otro PDF con información similar a la del artículo, aunque algo más extensa.

Comparte esta información

10 Comentarios para “SQL Injection con ejemplos”

  1. meneame.net dice:

    SQL Injection con ejemplos

    interesante articulo de introduccion a los ataques de injeccion de codigo sql.

  2. Romny Duarte dice:

    Hola que tal, buen documento pero les recomiendo la operacion net protector de microsft, donde se trabajan seguridad
    http://www.microsoft.com/spanish/msdn/latam/netpro/

  3. liber dice:

    estoy de acuerdo con Rommy Duarte

  4. Patxi dice:

    Bueno, esa es una buena referencia, aunque muy centrada en microsoft. Es importante tener en cuenta que el SQL Injection suele aprovechar características propias de las diferentes bases de datos y lenguajes de programación, por lo que si sueles usar otras bases de datos diferentes a SQLServer, o lenguajes diferentes, conviene que no limites la información a un solo web, y que investigues posibles fuentes de problemas en la plataforma en la estés desarrollando. Ya se sabe, más vale prevenir que curar…

  5. ruleta dice:

    Un buen documento

    http://ruleta.carookee.com

  6. Mis Algoritmos » Blog Archive » Protegiendo aplicaciones contra los ataques de inyección SQL dice:

    […] Las inyecciones SQL, son un tema que todo programador debe tener en cuenta, debido a que TODO sistema realizado para acceso Web que interactúe con bases de datos y datos originarios de formularios requiere su atención. No es un tema dificil de entender ya que está ampliamente documentado en la Web. Pero, no obstante, para muchos es un dolor de cabeza, por lo que trataré de reducirles todo a un sencillo y único paso: Filtrar todo dato originario del exterior. […]

  7. Paula dice:

    Interesante!!

  8. Martin Aberastegue » Algo de SQL Injection dice:

    […] Algo de SQL Injection Noviembre 20th, 2006 Vía EsLoMas.com me encuentro con este articulo sobre ataques a SQL vía inyección de código, y no solo nos estamos refiriendo a ataques en ASP.NET y SQL Server, sino que también los mismos ejemplos pueden ser puestos en practica con portales un tanto descuidados que utilicen MySQL y PHP. […]

  9. DOBLE R dice:

    esta muy bueno el documento sobre todo para mi q aun estoy empesando a aprender sobre la seguridad en la red…

  10. juanprieto dice:

    Como se le pueden hacer pruebas a SQL Injection?

Deja un comentario