
CVE-2025-49132에 취약한 Pterodactyl 패널의 자격 증명을 제공하는 스크립트
/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 계정을 생성하기만 하면 됩니다이 시점에서 리버스 셸을 얻는 방법을 알기 위해서는 기본적인 펜테스팅 지식이 있어야 합니다.