
Visualización interactiva de la vulnerabilidad RCE React2Shell (CVE-2025-55182) con animaciones narradas para tres audiencias: Experto, Practicante e Interesado. Audio sincronizado mediante ElevenLabs + Whisper.
Una visualización educativa interactiva que explica la vulnerabilidad React2Shell: un fallo crítico de ejecución remota de código con puntuación CVSS 10.0 en React Server Components.
Un recorrido narrado de 5 pasos que explica:
hasOwnProperty que previene el ataqueCada paso incluye:
La visualización es completamente adaptable con una experiencia optimizada para móviles:
La visualización admite tres niveles de audiencia, cada uno con una narración adaptada:
| Nivel | Audiencia | Estilo |
|---|---|---|
| Experto | Ingenieros de seguridad, desarrolladores senior | Terminología precisa, mecánica profunda |
| Profesional | Desarrolladores, profesionales de TI | Conceptos con ejemplos prácticos |
| Interesado | Liderazgo, gerentes de producto | Impacto empresarial, conclusiones clave |
Los usuarios pueden cambiar entre niveles en tiempo real a través del menú desplegable "Audiencia objetivo" en los controles de video.
├── scripts/ # Narration scripts (source of truth)
│ ├── expert/
│ │ ├── ssr-narration.txt
│ │ ├── rsc-narration.txt
│ │ ├── exploit-narration.txt
│ │ ├── fix-narration.txt
│ │ └── lessons-narration.txt
│ ├── practitioner/
│ │ └── ... (same files)
│ ├── stakeholder/
│ │ └── ... (same files)
│ └── transcribe.py # Whisper transcription script
├── static/audio/ # Generated MP3 files
│ ├── expert/
│ │ ├── ssr.mp3
│ │ ├── rsc.mp3
│ │ ├── exploit.mp3
│ │ ├── fix.mp3
│ │ └── lessons.mp3
│ ├── practitioner/
│ │ └── ... (same files)
│ └── stakeholder/
│ └── ... (same files)
├── src/lib/data/ # Whisper JSON output (word timestamps)
│ ├── expert/
│ │ ├── ssr-whisper.json
│ │ └── ...
│ ├── practitioner/
│ │ └── ...
│ └── stakeholder/
│ └── ...
└── src/lib/utils/triggers/ # Animation trigger phrases per level
├── expert/
├── practitioner/
└── stakeholder/
npm install
npm run dev
Los guiones están en scripts/{level}/:
ssr-narration.txtrsc-narration.txtexploit-narration.txtfix-narration.txtlessons-narration.txtCada guión incluye comentarios de frases desencadenantes al final para la sincronización de animaciones.
Sube el guión a ElevenLabs y descarga el MP3.
Coloca el MP3 en static/audio/{level}/ con el nombre del paso (por ejemplo, static/audio/expert/ssr.mp3).
Archivo individual:
python scripts/transcribe.py ssr expert
python scripts/transcribe.py rsc practitioner
Modo por lotes (todos los archivos de un nivel):
python scripts/transcribe.py --batch expert
python scripts/transcribe.py --batch practitioner
python scripts/transcribe.py --batch stakeholder
python scripts/transcribe.py --batch all # Todos los 15 archivos
Opciones:
--model small - Usar un modelo Whisper más grande para mayor precisión--dry-run - Vista previa de lo que se transcribiría sin ejecutarEl script genera JSON en src/lib/data/{level}/ con marcas de tiempo a nivel de palabra.
Si el texto de la narración cambió significativamente, actualiza las frases desencadenantes en src/lib/utils/triggers/{level}/ para que coincidan con el nuevo guión.
src/lib/utils/triggers/) encuentra frases clave por nivelsrc/lib/stores/timeline.svelte.ts) sincroniza audio con animacióncurrentTime usando getAnimationState()npm run build
npm run preview
Con fines educativos. Creado para concienciación sobre seguridad.