Skip to content

Orden de encoding XSS: por qué la secuencia cambia el resultado

URL encoding, entidades HTML y Base64 no son intercambiables: el orden debe reflejar cómo la aplicación transforma la entrada.

Publicado el 1 min de lectura

En XSS, el encoding no es decoración. Cambiar el orden puede producir una cadena completamente distinta en el navegador.

URL encoding, entidades HTML, Base64 y escapes JavaScript actúan en capas diferentes. Usarlos sin entender la ruta real de la entrada crea falsos negativos y falsos positivos.

Sigue la ruta de decodificación

Si un parámetro pasa por URL decoding, luego se inserta en HTML y después lo lee JavaScript, el orden de prueba debe reflejar esa cadena. No apliques transformaciones porque “suenan útiles”.

Muestra cada paso

Una buena herramienta enseña raw input, mutaciones y salida final. Así el tester puede ver cuándo %253C se convierte en %3C y cuándo llega a <.

Reporta el orden

El equipo que corrige necesita saber qué capa falló. “Doble URL decoding antes de escribir en innerHTML” es mucho más accionable que “payload codificado funciona”.

Artículos relacionados

La elección del payload importa menos que el contexto de inyección: HTML, atributos, URLs, scripts y sinks DOM fallan de formas distintas.
Guardar conjuntos de payloads localmente ayuda a repetir pruebas sin convertir la herramienta en un almacén remoto de datos sensibles.
Las pruebas XSS responsables dependen del alcance, la evidencia, la minimización de datos y saber cuándo una prueba de concepto ya es suficiente.