Skip to main content
Todos los Términos Glossary

Cargas útiles políglotas

Definition

Las cargas útiles políglotas son cadenas de ataque que son válidas en múltiples contextos, lo que puede eludir los filtros de seguridad. Por ejemplo, una cadena puede ser a la vez JavaScript válido y HTML válido. Estas cargas útiles sofisticadas pueden explotar las diferencias de los analizadores y escapar del saneamiento. La prevención requiere una validación de entrada y una codificación de salida sensibles al contexto.

Qué son los payloads polyglot

Un payload polyglot es una única cadena diseñada para ser válida, y para hacer algo útil para el atacante, en más de un contexto de análisis a la vez. Un ejemplo clásico en la web es una secuencia que se comporta como texto normal en HTML, como valor de un atributo y como JavaScript ejecutable, de modo que, sea cual sea la forma en que la página interprete la entrada, una parte de ella igual dispara la ejecución de un script. Los atacantes los construyen combinando fragmentos que cierran un contexto y abren otro, usando trucos de comentarios y caracteres que los distintos analizadores tratan de forma diferente. La misma idea aparece en los formatos de archivo, donde un mismo archivo es a la vez una imagen válida y un script o un archivo comprimido válido.

Por qué los polyglots son peligrosos

Los polyglots existen para burlar las defensas específicas de cada contexto. Muchos filtros de entrada y saneadores dan por hecho que saben dónde terminarán los datos del usuario, en un cuerpo HTML, una URL o una cadena de JavaScript, y solo codifican para ese caso. Un payload que se mantiene válido a través de varios contextos se cuela por filtros ajustados a uno solo, y explota las diferencias entre cómo leen los mismos bytes un saneador del lado del servidor y el analizador del navegador. Esto convierte a los polyglots en un favorito para XSS que sobrevive a las reglas de un web application firewall y para subidas que pasan una comprobación de imagen pero se ejecutan como script. Una única cadena reutilizable puede sondear muchos puntos de inyección, reduciendo el esfuerzo de encontrar uno que funcione.

Cómo defenderse de los payloads polyglot

La defensa empieza con la codificación de salida consciente del contexto: codifica los datos para el destino exacto donde caen (HTML, atributo, URL, JavaScript, CSS) en lugar de aplicar un único filtro genérico, y prefiere APIs del DOM seguras como textContent frente a innerHTML. Valida las subidas por tipo de contenido y vuelve a codificar los archivos del lado del servidor para que un polyglot no pueda conservar su segunda identidad. Una Content Security Policy estricta limita lo que puede hacer un script inyectado aunque un payload llegue a caer. cside complementa estos controles analizando el comportamiento de los scripts que realmente se ejecutan en el navegador y bloqueando la actividad maliciosa en tiempo real, en lugar de depender de filtros que una cadena hábilmente codificada puede evadir.

Definition

¿En qué se diferencia un payload polyglot de un payload de XSS normal?

Un payload de XSS estándar apunta a un único contexto conocido. Un polyglot está diseñado para seguir siendo válido en varios contextos a la vez, así que el atacante no necesita saber exactamente cómo analizará la aplicación la entrada; la misma cadena funciona tanto si cae en HTML, como en un atributo o en JavaScript.

Definition

¿Pueden aparecer polyglots en archivos, no solo en entradas de texto?

Sí. Los polyglots de archivo se crean para que un mismo archivo cumpla dos especificaciones de formato a la vez, por ejemplo un GIF válido que además es JavaScript ejecutable. Se usan para saltarse filtros de subida o comprobaciones de tipo de contenido que solo validan contra un único formato esperado.

Got more questions

Talk to a security expert

We answer client-side security questions every day. Bring yours.

Reservar una demo

¿Quieres verlo en detalle con un ingeniero?

Treinta minutos, sobre tu propio sitio. Nada de diapositivas.

Te enseñaremos:

Qué scripts de terceros se están ejecutando ahora mismo en tu sitio
En qué punto estás con los requisitos 6.4.3 y 11.6.1 de PCI DSS
Qué parte de tu tráfico son bots y agentes de IA

¿Prefieres mandarnos una pregunta?

Buscando huecos libres…

Solo humanos de verdad. Nos daríamos cuenta.

¿Problemas para reservar? Abrir el calendario en una pestaña nueva

¿Qué quieres resolver?

Cuéntanoslo en una línea y te responderemos con algo útil, no con un discurso genérico.

Solemos ayudar con:

Ver qué scripts de terceros se ejecutan en tu sitio
Evidencias para PCI DSS 6.4.3 y 11.6.1
Bots, agentes de IA y robo de cuentas

¿Prefieres reservar una hora? Elegir un hueco