En este post vamos a estar resolviendo el laboratorio de PortSwigger: “Reflected XSS into HTML context with nothing encoded”.

Página de inicio del laboratorio Reflected XSS into HTML context

Para resolver el laboratorio tenemos que realizar un Cross-site Scripting que llame a la función alert.

Cuando entramos en el laboratorio, vemos un campo de búsqueda:

Vista inicial del laboratorio con barra de búsqueda

Vamos a probar a buscar cualquier cosa:

Búsqueda de prueba en la barra de búsqueda

Resultado de búsqueda mostrando el término reflejado

Si nos fijamos, el término de búsqueda se ve reflejado en la web. Por lo que, podemos probar a meter un código Javascript usando el atributo onerror en el tag <img>.

De tal forma, que si falla al cargar la imagen que especificamos en el atributo src, se nos ejecutará lo que escribimos en onerror:

Payload XSS insertado en la barra de búsqueda

Alerta JavaScript ejecutándose con éxito

Como vemos, efectivamente vemos que ha fallado al cargar la imagen, por tanto, se nos ejecuta el alert. De esta forma, conseguimos resolver el laboratorio.