Threats and Attacks

¿Qué es XSS (Cross-Site Scripting)?

Cross-Site Scripting, o XSS, es una vulnerabilidad de seguridad en sitios web que permite a los atacantes añadir scripts dañinos a las páginas web. La mayoría de las veces, estos scripts están escritos en JavaScript.

¿Qué es XSS (Cross-Site Scripting)?

Cross-Site Scripting, o XSS, es una vulnerabilidad de seguridad en sitios web que permite a los atacantes añadir scripts dañinos a las páginas web. La mayoría de las veces, estos scripts están escritos en JavaScript.

Si alguien visita una página afectada por XSS, su navegador ejecuta el script del atacante. Esto puede resultar en cookies robadas, sesiones secuestradas o acciones realizadas sin el permiso del usuario.

XSS, al igual que la Inyección SQL, se incluye regularmente en el OWASP Top 10 como una de las vulnerabilidades más comunes en aplicaciones web.

plexicus-xss-attack-ilustration

¿Cómo funciona XSS?

XSS a menudo apunta a aplicaciones web que no verifican y limpian correctamente la entrada del usuario.

Por ejemplo, si un cuadro de comentarios permite HTML o JavaScript sin ningún tipo de filtrado, un atacante podría añadir un código como este:

<script>alert('¡Hackeado!');</script>

Cuando las víctimas ven la página, el código malicioso se ejecuta dentro de su navegador.

Por qué XSS es importante en ciberseguridad

XSS puede llevar a una brecha mayor:

  • Toma de control de cuentas (robo de cookies de sesión para hacerse pasar por usuarios)
  • Robo de datos (captura de entradas de formularios como contraseñas o tarjetas de crédito)
  • Ataques de phishing (inyectando formularios de inicio de sesión falsos)
  • Distribución de malware (redirigiendo a los usuarios a sitios web maliciosos)

Tipos de XSS

  1. XSS Basado en DOM
  2. El ataque ocurre completamente en el navegador manipulando el Modelo de Objeto de Documento (DOM) sin involucrar al servidor.
  3. XSS Almacenado
  4. El script malicioso se almacena permanentemente en el servidor, como en la base de datos o la página de perfil.
  5. XSS Reflejado
  6. El script se refleja en un servidor web (por ejemplo, en la URL o mensaje de error), el script se ejecutará cuando la víctima haga clic en un enlace creado por los atacantes.

Cómo Prevenir XSS

  • Saneamiento de entrada y codificación de salida: siempre limpiar los datos de entrada del usuario antes de procesarlos, transformando la entrada del usuario en un formato seguro.
  • Usar Política de Seguridad de Contenidos (CSP): restringe qué scripts pueden ejecutarse en el navegador.
  • Evitar eval() y JavaScript en línea: para reducir los riesgos de inyección.
  • Pruebas de seguridad (DAST/IAST): realizar pruebas de seguridad para detectar vulnerabilidades temprano.

Ejemplo en Caso del Mundo Real - Gusano Samy (MySpace, 2005)

Qué sucedió: Samy Kamkar publicó un perfil de MySpace que contenía una carga útil de XSS almacenado. Cuando otros usuarios veían el perfil, la carga útil se ejecutaba en sus navegadores, (a) agregaba a Samy como amigo, (b) añadía la frase “Samy es mi héroe” a sus perfiles, y (c) se replicaba en las páginas de perfil de esos usuarios.

Impacto: El gusano se autopropagó a ~1 millón de usuarios en aproximadamente 20 horas, obligando a MySpace a estar fuera de línea temporalmente.

Por qué funcionó: MySpace permitía HTML/atributos sin escapar en los campos de perfil, permitiendo la ejecución de scripts almacenados en los navegadores de los visitantes.

Lecciones / corrección: Codificación de salida adecuada, sanitización de entrada, eliminación de HTML en campos de perfil y parcheo rápido. Samy posteriormente enfrentó consecuencias legales, y MySpace implementó filtros.

Términos Relacionados

¿Listo para validar lo que importa?

Listo para validar lo que importa.

Plexicus es Proof-Driven AppSec: hallazgos validados, comprensión contextual y remediación revisada — anclada en evidencia, acotada contigo.

Calificación

Comprueba si el AI Swarm Pentest encaja en tu entorno.

Déjanos el contexto mínimo. Revisaremos el alcance y te indicaremos el siguiente paso comercial.

Antes de enviar — verifica que encajas

Equipos con menos de 50 desarrolladores: empieza una prueba de 14 días en lugar de reservar una demo. Empieza una prueba de 14 días →

0 / 280

Sin compromiso. Si no encajas, te lo decimos.

SAMPLE HANDOVER · ILLUSTRATIVE

Sample evidence handover

A trimmed view of what your team receives at the end of an AI Swarm Pentest engagement. Real engagements include full technical evidence, executive narrative, and a remediation plan.

VALIDATED FINDING Evidence attached

Server-Side Request Forgery in webhooks/receiver

demo-project/sample-app · src/webhooks/receiver.py:42

SeverityHigh CVSS 3.18.6 Priority79 Confirmedvia replay

Untrusted caller-supplied URLs reach an internal egress without an allowlist. Replayed in a sandbox against a fresh authorised target — the same control was validated to fail twice.

REVIEWER-READY REMEDIATION Merge-ready PR

Validate the target URL against an allowlist of permitted hostnames. Reject private/internal IP ranges. Enforce HTTPS only.

plexicus/remediation/webhooks-ssrf 3 changed · 0 new files
42resp = requests.get(target_url)
42+if not is_allowed_host(target_url):
43+  raise WebhookRejected(target_url)
44+resp = requests.get(target_url, timeout=5)
Every engagement hands over:
  • Executive briefing
  • Validated findings list
  • Merge-ready PRs
  • Compliance mapping (NIS2 · DORA · CRA)