
Exploit de preuve de concept pour le téléchargement arbitraire de fichiers et la traversée de répertoire dans RealPlayer, menant à l'exécution de code à distance via la méthode Import().
Real Player 'external::Import()' téléchargement arbitraire de fichier, vulnérabilités de traversée de répertoire menant à l'exécution de code à distance
démo vidéo : https://youtu.be/CONlijEgDLc
Real Player utilise les fonctionnalités de Microsoft Internet Explorer et expose des propriétés et des méthodes via un moyen spécial propre à l'application :
L'objet 'external' expose plusieurs méthodes et propriétés personnalisées.
La méthode 'Import()' est gérée de manière non sécurisée en ce qui concerne le paramètre 'Copy to My Music', ce qui permet le téléchargement de types de fichiers arbitraires, ce qui peut être dangereux car seuls les types audio/image/vidéo devraient être autorisés à être téléchargés sur le disque de l'utilisateur. De plus, elle ne nettoie pas correctement les chemins de fichiers, permettant d'installer des fichiers arbitraires à des emplacements arbitraires. Même si une erreur s'affiche car le fichier téléchargé ne peut pas être rendu, le fichier reste jusqu'à ce que l'utilisateur ferme la boîte de dialogue. De plus, lors de l'ouverture de nouvelles fenêtres, Real Player recherche une ancienne bibliothèque IE obsolète (shdoclc.dll), qui peut également être abusée pour exécuter du code automatiquement sans avoir à attendre le redémarrage (vrai lorsque le fichier est installé dans le dossier 'startup').
L'attaquant doit héberger les fichiers à copier/télécharger dans un partage SMB ou WebDav. Le répertoire 'appdata' doit être placé à la racine du partage.
De plus, une condition DOS dans 'external.PreloadURL()' aide à ce que les fichiers ne soient pas supprimés par Real Player.
Le PoC déposera 'shdoclc.dll' (contient un code simple pour exécuter 'cmd.exe' dans 'DllMain()' à des fins de démonstration) dans le dossier 'windowsapps' de l'utilisateur et 'write.exe' dans le dossier 'startup', de sorte qu'il fonctionne universellement (toute version de Windows, au moins de XP à 11).
testé sur RP ver. 16.00.282, 16.0.3.51, Cloud 17.0.9.17, v.20.0.7.309