XSS DOM stocké
Stored DOM XSS
Ce laboratoire démontre une vulnérabilité DOM stockée dans la fonctionnalité de commentaires du blog. Pour résoudre le lab, exploiter cette vulnérabilité afin d’exécuter la fonction alert().
si on insère dans la zone de commentaires le classique script :
on remarque que le site supprime une partie du commentaire.


Voici la fonction en question :
La fonction
escapeHTML(html)n’échappe que la première occurrence de<et>(utilisation dereplacesimple).Comme le code utilise ensuite
innerHTMLpour insérer les valeurs, des balises malveillantes peuvent subsister et être interprétées par le navigateur.Le filtrage n’est donc effectif que pour le premier match ; les occurrences suivantes restent vulnérables.

Utiliser un remplacement global (
replaceAllou une expression régulière globale) pour échapper toutes les occurrences de<et>.Éviter d’utiliser
innerHTMLpour des données non fiables ; préférertextContentoucreateTextNode

Payloads exploitables
Fermer puis injecter un script :
Forcer une erreur d’image pour déclencher
onerror:
Ces payloads fonctionnent parce que seuls quelques caractères sont transformés et que des occurrences supplémentaires de </> restent interprétables.

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