
cve-2018-8108
Lors d'un test de sécurité, j'ai découvert ce problème par hasard. BUI est un framework front-end, utilisé par de nombreuses entreprises pour construire leur propre front-end.
Habituellement, pour prévenir les XSS, on applique le principe de non-confiance aux entrées utilisateur, on les échappe lors de la sortie, puis on les transmet à la page front-end pour affichage.
Mais le composant select de BUI, lors de l'affichage de cette sortie, a ré-échappé les entrées utilisateur déjà échappées, ce qui a permis aux payloads XSS de contourner le mécanisme de sécurité existant et de s'exécuter.
Les exemples dans les pièces jointes proviennent de cas réels.
On peut voir que les données dans la balise input avec l'id workGroupList ont déjà été échappées.
Ci-dessous, BUI.use, lors de l'utilisation du composant select, récupère les données de workGroupList et déclenche directement l'exécution du payload XSS que nous avons injecté.
Vous pouvez essayer de l'exécuter pour voir.