miércoles 21 de marzo de 2007

Introducción al XSS y colección de estos scripts


Bueno, hoy en día todos sabemos que gracias al web 2.0 en el que todo es interactivo y los usuarios pueden interactuar con las webs que visitan y demás se está popularizando el XSS (Cross Site Scripting). Antes que nada para los que no lo sepan dejo una introducción al Cross Site Scripting sacada de www.desarrolloweb.com:

El Cross-Site-Scripting, conocido también como XSS por sus siglas en ingles, es una vulnerabilidad que muchos desarrolladores dejan pasar por alto, quizás por falta de un planeamiento de análisis de riesgos en el proceso de diseño, desarrollo e implementación de sus aplicativos, o simplemente no lo vean como una falla que les va a presentar problemas en su aplicación, incluso por desconocimiento de esta vulnerabilidad.

Sea cual sea el motivo por el cual no se ejecuten medidas de prevención con respecto a esta vulnerabilidad, es necesario saber, que es un tipo de ataque que se extiende cada día mas, hoy en día es muy común encontrar sitios y usuarios afectados por este tipo de agresión.

Para ejecutar este tipo de ataque no es necesario ser un gurú en el campo de la programación, ni desarrollar o utilizar herramientas complejas, basta nada más con manejar un poco de las etiquetas de HTML y algún lenguaje de Scripting, es suficiente para utilizar el cross-site-scripting en sitios que no están protegidos contra este tipo de ataque.

Ahora bien, la forma de Proteccion también son métodos básicos y de fácil implementación, que no conllevan ninguna tarea complicada que signifique un retraso significativo en el tiempo de desarrollo de la aplicación, ni un quebradero de cabeza para implementar en sitios ya desarrollados, ya que dicha solución consiste en implantar un sistema de validación en los campos de entrada de datos, además de tener claro que no podemos fiarnos de datos que vengan de nuestras propias bases de datos cuando estos datos pueden ser insertados o modificados por el usuario.

La clave primordial en el campo de la seguridad es no confiar en la entrada de datos de ningún usuario, ya que en algún momento estas entradas se puede convertir en una inserción de código malicioso, es por ello que la aplicación debe de validar cada uno de los campos en donde el usuario pueda o le sea requerido el ingreso de datos y dejar de lado la política de confianza al usuario.


El XSS es uno de los ataques más utilizados en las webs interactivas que permiten inyección de códigos HTML además hay mucha gente que se las ingenia para saltarse muchos de los filtros que usan muchas webs, aquí tenéis una gran colección de scripts que se pueden inyectar en webs para provocar el Cross Site Scripting y muchos de ellos logran saltarse los filtros de muchas webs que no están lo suficientemente protegidas. Yo, personalmente los he probado y he de decir que hay tantos que es normal que los filtros no los anulen a todos y muchas veces las webs son vulnerables a este tipo de ataques, que aunque no lo parezca, pueden ser muy peligrosos ya que permiten al usuario maligno la inyección de código y ejecución del mismo en la máquina local del usuario que visualiza el script, por lo que puede haber robo de cookies y por lo tanto suplantación de personalidad, incluso del administrador de la web. En todo caso, es un tema a tener muy en cuenta.