XSS Lab 19
Skills
- Reflected XSS into a JavaScript string with angle brackets and double quotes HTML-encoded and single quotes escaped
Certificaciones
- eWPT
- eWPTXv2
- OSWE
- BSCP
Descripción
Este laboratorio
contiene una vulnerabilidad XSS reflejada
en la funcionalidad de seguimiento de la consulta de búsqueda, donde los corchetes angulares
y las comillas dobles
están codificados en HTML
y las comillas simples
están escapadas
. Para resolver
este laboratorio, debemos realizar un ataque XSS
que rompa
la cadena
de JavaScript
y llame a la función alert()
. Debido a las restricciones
de codificación
, necesitaremos encontrar una forma de escapar
correctamente de la cadena
y ejecutar
el código malicioso
aprovechando las vulnerabilidades
en la manipulación
del input
Resolución
Al acceder
a la web
nos sale esto
Introducimos contenido
en el cuadro
de búsqueda
Observamos el código fuente
y vemos que nuestro payload
aparece entre comillas simples
Si intentamos usar el payload ' testing
nos escapa
la comilla simple
Si probamos este payload \' testing
conseguimos escapar
la \
que nos escapa
la '
Una vez hemos escapado del string
, podemos usar este otro payload \'-alert(3);//
. Con la \
escapamos la \
que usa la web para escapar nuestra '
, haciendo que sí sea interpretada. El -
sirve para concatenar texto en cadenas de texto
, es parecido al +
, pero se prefiere usar el -
porque no se urlencodea
. Con //
comentamos el resto de la línea para evitar errores
y asegurar
que se ejecute
el alert(3)
correctamente. Este tipo de técnica nos permite ejecutar código JavaScript
a pesar de las restricciones
impuestas en la entrada
de datos