Manipulation de messages WebSocket

Manipulating WebSocket messages to exploit vulnerabilities

Cette boutique en ligne dispose d’une fonctionnalité de chat en temps réel implémentée à l’aide de WebSockets. Les messages envoyés par l’utilisateur sont affichés instantanément dans le navigateur d’un agent du support. L’objectif du laboratoire est de déclencher une popup alert() dans le navigateur de l’agent en manipulant un message WebSocket.

Un champ de chat est disponible sur l’application.

En inspectant le trafic, on constate que les messages sont envoyés via WebSocket sous la forme suivante :

Test de filtrage

On tente d’envoyer le payload suivant via le chat :

Résultat observé : Le contenu est échappé côté serveur et interprété comme du texte :

Cela indique la présence d’un filtrage basique contre les balises <script>.

Contournement du filtrage

On force alors l’envoi manuel d’un message WebSocket contenant le payload suivant :

Le message est forwardé directement via la requête WebSocket, sans passer par les contrôles habituels de l’interface.

Lorsque l’agent du support reçoit le message, le navigateur interprète l’attribut onerror, ce qui déclenche :

  • l’exécution de alert(0)

  • l’apparition d’une fenêtre popup dans le navigateur de l’agent

Mis à jour