Stored XSS into anchor href attribute with double quotes HTML-encoded – PortSwigger Write Up

En este post vamos a estar resolviendo el laboratorio de PortSwigger: “Stored XSS into anchor href attribute with double quotes HTML-encoded.”


En este caso, para resolver el laboratorio tenemos que escribir un comentario que llame a la función alert cuando se haga click en el nombre del autor del comentario.

Lo primero de todo es acceder al laboratorio:


Una vez accedemos, podemos ver como hay distintos artículos, nos metemos en el primero de ellos (podríamos meternos en cualquiera):



Una vez dentro, podemos observar que hay una zona de comentarios:


Por lo que vamos a escribir un comentario cualquiera:




Cuando enviamos un comentario, este se escribe y almacena en la web. Podemos observar como en el comentario que hemos puesto hay un hipervínculo. Si vemos su código fuente, podemos observar como el atributo href corresponde al campo de “Website” de cuando se escribe un comentario:

<img src="/assets/images/portswigger/stored_xss_into_anchor_attribute_double_quotes_html_encoded/9.png" width=>


Por lo que sabiendo esto, podemos escribir en el campo de “Website” un payload que nos ejecute un alert cuando se de click en el nombre del autor:

<img src="/assets/images/portswigger/stored_xss_into_anchor_attribute_double_quotes_html_encoded/10.png" width=>


Enviamos el comentario y…

<img src="/assets/images/portswigger/stored_xss_into_anchor_attribute_double_quotes_html_encoded/11.png" width=>


¡Completamos el laboratorio! Si volvemos a la zona de comentarios y observamos el código fuente, podemos ver como se ha colocado nuestro payload:

<img src="/assets/images/portswigger/stored_xss_into_anchor_attribute_double_quotes_html_encoded/12.png" width=>


Y si damos click en “test”:

¡Se nos ejecuta!

<img src="/assets/images/portswigger/stored_xss_into_anchor_attribute_double_quotes_html_encoded/13.png" width=>


¡Un saludo y espero que os sirva de apoyo!