
CVE-2025-49132에 대한 최소 개념 증명(PoC) 익스플로잇으로, Pterodactyl 패널에서 PHP 파일을 읽어 데이터베이스 자격 증명을 추출하고 무단 관리자 액세스를 허용합니다.
Pterodactyl은 무료 오픈소스 게임 서버 관리 패널입니다. 1.11.11 이전 버전에서는 /locales/locale.json을 locale 및 namespace 쿼리 매개변수와 함께 사용하면 악의적인 공격자가 인증 없이 임의 코드를 실행할 수 있었습니다. 임의 코드를 실행할 수 있게 되면 패널 서버에 대한 액세스 권한을 얻거나, 패널 구성에서 자격 증명을 읽거나, 데이터베이스에서 민감한 정보를 추출하거나, 패널이 관리하는 서버의 파일에 액세스하는 등의 작업이 가능합니다. 이 문제는 1.11.11 버전에서 패치되었습니다. 이 취약점에 대한 소프트웨어 차원의 해결 방법은 없지만, 외부 웹 애플리케이션 방화벽(WAF)을 사용하면 이 공격을 완화하는 데 도움이 될 수 있습니다.
공격자는 /locales/locale.json에 GET 요청을 보냅니다. 응답으로 JSON이 반환되고 URL에 hash= 매개변수가 포함되어 있지 않다면 CVE-2025-49132에 취약한 것입니다.
취약점을 악용하려면 locale= 및 namespace= 매개변수를 동시에 사용하여 PHP 파일만 읽어야 하며, 선택한 PHP 파일에 저장된 변수가 포함된 JSON 응답을 받게 됩니다.
예: /locales/locale.json?locale=../../../pterodactyl&namespace=config/database
더 흥미로운 PHP 파일을 읽으려면 공식 Pterodactyl 저장소를 확인해 보세요 ^^
다음 명령으로 데이터베이스 자격 증명을 얻으세요: python3 CVE-2025-49132_PoC.py.py <url>
users 테이블에 Pterodactyl 계정을 직접 만들면 됩니다.이 시점에서 리버스 셸을 얻는 방법을 알려면 기본적인 침투 테스트 지식이 있어야 합니다.