XSS DOM réfléchi
Reflected DOM XSS
Ce laboratoire montre une vulnérabilité DOM réfléchie. Les données envoyées dans la requête sont renvoyées par le serveur, puis un script côté client les traite de manière dangereuse et les écrit dans un eval, ouvrant la porte à une exécution de code.
Le client effectue une requête AJAX vers path + window.location.search. Quand la réponse arrive, le code fait :
La fonction displaySearchResults parcourt searchResultsObj et crée dynamiquement des éléments (h1, h2, p, a, img, etc.), en affectant innerText pour les titres et résumés mais en important searchResultsObj via eval.

L'utilisation de eval('var searchResultsObj = ' + this.responseText) est critique : si la réponse contrôlée contient du texte spécialement formé, il est possible de casser la syntaxe attendue et d'injecter du code JavaScript qui sera exécuté lors de l'évaluation.
Faire renvoyer (ou intercepter)
responseTextcontenant la valeur attaquante poursearchTermou un champ similaire.Sortir de la chaîne/le littéral JSON attendu en fermant la structure et en ajoutant du code exécutable, puis neutraliser le reste avec un commentaire (
//) pour éviter des erreurs de syntaxe ultérieures.

Exemples de payloads testés
(ces chaînes sont destinées à être placées dans la partie de la réponse reflétée — elles montrent comment sortir de la structure et exécuter alert(0))


En injectant une des chaînes ci-dessus dans la portion réfléchie de la réponse, l'eval interprétera la construction modifiée et exécutera alert(0), démontrant l'exécution de code côté client via DOM XSS réfléchi.

Mis à jour
Ce contenu vous a-t-il été utile ?