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.
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”.