Web Security Academy

Cross-site scripting - Lab: Reflected XSS into attribute with angle brackets HTML-encoded

Objectif :

  • Invoquer la fonction alert() ( en Javascript ) en injectant du script dans le site web.

Solution :

On accédant au lab, on se retrouve dans un blog avec une barre de recherche disponible.

Lorsqu'on recherche un mot, il est réécrit en clair sur la page résultant de cette recherche. Un exemple avec le mot "rouge'' dans l'image suivante :

On va donc essayer d'effectuer une XSS réfléchie.

Tentons d'abord avec un payload simple : "><script>alert(document.domain)</script>.

Notre payload est directement réécrit sur la page sans être exécuté. En effet, les caractères " , > et < sont encodés.

On va donc utiliser seulement les événements HTML en fermant d'abord les guillements de la zone d'écriture ou d'un attribut HTML présent de base.

Ce qui donne par exemple : " autofocus onfocus=alert(document.domain)

On soumet ce payload et une fenêtre apparaît :

On a donc reussi et le lab est désormais validé.