Web Security Academy

Cross-site scripting - Lab : Reflected XSS into a JavaScript string with single quote and backslash escaped

Objectif :

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

Solution :

On lance le lab et on arrive sur un blog. Une barre de recherche est mis à disposition.

Lorsque l'on recherche un mot, il apparaît directement sur la page. Un exemple avec le mot "rouge" dans l'image suivante :

On va donc tenter de réaliser une XSS réflechie.

Quand on regarde le code source, on découvre que le mot recherché se trouve à l'intérieur d'une balise <script> :

On va essayer de fermer cette balise pour ensuite simplement écrire notre code pour invoquer la fonction alert(). Notre payload ne doit pas contenir des guillements simples, ni des antislashs car ce sont des caractères filtrés. On donc peut écrire par exemple :

</script><img src=1 onerror=alert("hello")>

On soumet notre payload dans la barre de recherche et une fenêtre pop-up s'affiche :

Le script injecté s'est bien exécuté. Le lab est désormais résolu.