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

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

Para resolver el laboratorio tenemos que ejecutar la función alert en un comentario de un post.

Cuando abrimos el laboratorio lo primero que tenemos que hacer es dirigirnos a un post cualquiera:

Vista del blog con listado de posts disponibles

Dentro del post, encontramos lo siguiente:

Formulario de comentarios con campos para rellenar

Como podemos ver tenemos la opción de dejar un comentario, y distintos campos a rellenar.

Por lo que nosotros simplemente vamos a hacerle caso, y vamos a rellenar todos los campos, eso si, en el campo del comentario, colocaremos un pequeño código JavaScript que nos ejecute un alert:

Formulario completado con payload XSS en el campo de comentario

Con todos los campos rellenados, simplemente enviamos el comentario y habremos resuelto el laboratorio:

Laboratorio resuelto exitosamente

Para ver que ha ocurrido, vamos a volver al post donde hemos escrito nuestro comentario:

Alerta JavaScript ejecutándose en el navegador

Post mostrando el comentario con código XSS inyectado

Y como vemos, al entrar en el post, se nos ejecuta el código que habíamos escrito en el campo de comentario. Acabamos de explotar un Stored XSS.

Confirmación de laboratorio completado