SQL Injection con ejemplos

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.

Twitter Digg Delicious Stumbleupon Technorati Facebook Email

13 Respuestas para “SQL Injection con ejemplos”

  1. 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/

  2. estoy de acuerdo con Rommy Duarte

  3. 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…

  4. Interesante!!

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

  6. Como se le pueden hacer pruebas a SQL Injection?

  7. Nada es seguro…y menos microsoft…pensar que alguna aplicacion hecha por microsoft es segura, es ser un iluso xD

  8. Snake, no se si te hayas dado cuenta, pero en realidad no tiene que ver solo el fabricante, sino que es responsabilidad del programador y del administrador de la bd. el ver que privilegios tiene cada usuario sobre la misma y como interactua la aplicación con esos datos, además de revisar los datos recibidos en las aplicaciones.

  9. "nouser' or true; --" 12. Jun, 2010 en 9:39 pm

    sdsdfs

Trackbacks/Pingbacks

  1. meneame.net - 07. Jun, 2006

    SQL Injection con ejemplos

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

  2. Mis Algoritmos » Blog Archive » Protegiendo aplicaciones contra los ataques de inyección SQL - 13. Oct, 2006

    […] 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. […]

  3. Martin Aberastegue » Algo de SQL Injection - 20. Nov, 2006

    […] 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. […]