Introducción.-

XSS, del inglés Cross-site scripting es un tipo de inseguridad informática o agujero de seguridad basado en la explotación de vulnerabilidades del sistema de validación de HTML incrustado.

Antes de ampliar nuestro tema vamos a recordar conceptos claves para tener la idea clara al momento de realizar el ataque.

 ¿En qué consiste la seguridad informática?

La seguridad informática consiste en estudiar los métodos que podemos aplicar en un sistema informático para conservar la Integridad, Confiabilidad y Disponibilidad de la información.

Por Integridad comprendemos que la información solo puede ser modificada por aquellos usuarios que tengan permiso para hacerlo, la Confiabilidad indica que solo pueden tener acceso los usuarios autorizados; y  la Disponibilidad hace referencia a la disponibilidad de los datos cuando son requeridos.

¿Qué es un Hacker?

Hacker a aquella persona con muchos conocimientos sobre sistemas, la mayoría son muy curiosos e inteligentes. En la jerga informática suele definirse a los Hackers de acuerdo a sus intenciones en:

ü Hacker de Sombrero Blanco (White Hat Hacker): realizan intrusiones para determinar la seguridad de un sistema informático para luego mejorarlo y así evitar situaciones no deseadas. Son los buenos, los profesionales.

ü Hacker de Sombrero Negro (Black Hat Hacker): son los menos profesionales, no por sus conocimientos, sino por su moral. Realizan intrusiones a sistemas con fines maléficos, como robar datos privados, estafar, etc.

ü Hacker de Sombrero Gris (Gray Hat Hacker): son una combinación de los dos anteriores, terminan haciendo las cosas para el mejor postor (el mal o el bien).

Ya recordados estos conceptos ahora si empezaremos detallando paso a paso cada uno de los temas que abarca XSS

¿Qué es XSS?

Cross Site Scripting (Cruzar Código al Sitio) es uno de los ataques web más comunes de capa de aplicación. Se usa la X en lugar de la C para que no se confunda esta sigla con la de CSS (Hojas de Estilo en Cascada), que no es una falla sino más bien una tecnología para maquetado de páginas.

El concepto de XSS es manipular las secuencias de comandos del lado del cliente de una aplicación web para ejecutar de la manera deseada por el usuario malicioso. Tal manipulación puede incrustar un script en una página que puede ser ejecutado cada vez que se carga la página, o cada vez que un evento asociado se realiza.

En un ataque XSS típica del hacker infecta una página web legítima de su malicioso script de cliente. Cuando un usuario visita esta página web el script que se descarga de su navegador y se ejecuta. Hay muchas variaciones de este tema, sin embargo todos los ataques XSS siguen este patrón, que se representa en el siguiente diagrama.

 

Objetivo.-

XSS se utiliza comúnmente para lograr los resultados maliciosos siguientes:

  • El robo de identidad.
  • Acceso a la información confidencial o restringido.
  • Espiar a los hábitos de navegación web del usuario.
  • La alteración de la funcionalidad del navegador.
  • Web desfiguración aplicación.
  • Ataques de denegación de servicio.

Vulnerabilidades.-

Las vulnerabilidades de XSS originalmente abarcaban cualquier ataque que permitiera ejecutar código de “scripting”, como VBScript o JavaScript, en el contexto de otro sitio web. Existen dos tipos de XSS o Vulnerabilidades:

Directa (Persistente): consiste en invadir código HTML peligroso en sitios que así lo permitan, incluyendo así etiquetas como < script >,

< iframe > , entre otras.

Indirecta (Reflejada): consiste en modificar valores que la aplicación web utiliza para pasar variables entre dos páginas, sucede cuando hay un mensaje o una ruta en la URL del navegador, en una cookie, o cualquier otra cabecera HTPP.

 

Defensa.-

La prevención frente a estos ataques es bien simple, hay que escapar todas y cada una de las variables que recibimos, y hacerlo pensando donde van a estar, ya vimos que un simple strip_tags no es suficiente

ü  Todas las entradas proporcionadas por el usuario deben de ser validadas antes de ser utilizadas.

Ataque.-

Los ataques XSS son como los accidentes de tránsito:

  • Uno nunca piensa que le puede pasar
  • Cuando le pasa le echa la culpa a otro
  • Son algo mucho peor de lo que uno piensa

Como Realizar un Ataque usando XSS

Para realizar el ataque primeramente necesitamos crear un formulario el cual permita el ingreso de datos el cual seran almacenados en una base de datos para aquello hemos hecho el uso de un hosting con su respectivo dominio para poder realizar el ataque via Intenet.

Una vez teniendo nuestro formulario el cual para este ejemplo hemos usado programación php el cual esta conectado a una base de datos Mysql en donde se almacenaran los datos de usuario el cual deseen dejar un comentario en el sitio.

Entonces para primera practica como podemos encontrar la vulnerabilidad del sitio web que deseamos atacar un Script básico es el siguiente:

<script>alert(“ESTAS HACKEADO”)</script>

Si al momento que ingresemos este código en el formulario deberá almacenarlo en la base de datos y posteriormente ser ejecutado al momento de que volvamos a ingresar al sitio web.

Una vez cuando demos click en enviar la página web volverá a refrescar y cargara los datos que ingresamos.

Buenos hemos verificado que la base de datos del sitio web es vulnerable, con ello podemos realizar mas ataques ya se por medio de textos, graficos, videos, sonidos o redireccionar

Entonces realizaremos la demostración del ataque de redireccionamiento a otro sitio web en conjunto con el código malicioso que se ingreso al inicio.

Damos click en enviar y se cargara ambos Script que hemos ingresado.

Listo, ahora verificamos que la redirección fue hecha. Espero les haiga sido de mucho interes esta prueba y desmostración de uso de los ataques vía código malicioso.

Dejo adjunto los archivos de las páginas para que puedan realizar las pruebas de manera personal.

Archivo

Formulario & Conexión a Base

Demostración del Ataque XSS -Cross-Site Scripting