CVE-2025-49132
Pterodactyl — это бесплатная панель управления игровыми серверами с открытым исходным кодом. До версии 1.11.11, используя /locales/locale.json с параметрами запроса locale и namespace, злоумышленник может выполнить произвольный код без аутентификации. Имея возможность выполнять произвольный код, можно получить доступ к серверу панели, прочитать учётные данные из конфигурации панели, извлечь конфиденциальную информацию из базы данных, получить доступ к файлам серверов, управляемых панелью, и т.д. Эта проблема исправлена в версии 1.11.11. Программных обходных путей для этой уязвимости нет, но использование внешнего веб-брандмауэра (WAF) может помочь смягчить эту атаку.
Как это работает
Злоумышленник отправляет GET-запрос на /locales/locale.json. Если в ответ приходит JSON и URL не содержит параметр hash=, то он уязвим для CVE-2025-49132.
Для эксплуатации уязвимости необходимо одновременно использовать параметры locale= и namespace=, чтобы прочитать ТОЛЬКО PHP-ФАЙЛЫ, и вы получите JSON-ответ с переменными, хранящимися в выбранном PHP-файле.
Например: /locales/locale.json?locale=../../../pterodactyl&namespace=config/database
Чтобы найти более интересные PHP-файлы для чтения, вы можете проверить официальный репозиторий Pterodactyl ^^
Как использовать скрипт
Получите учетные данные базы данных с помощью команды: python3 CVE-2025-49132_PoC.py.py <url>
Как получить доступ к панели Pterodactyl в качестве администратора с помощью CVE-2025-49132
- Получите учетные данные базы данных.
- Найдите способ установить соединение с их базой данных, используя найденные учетные данные (порт 3306 открыт, локальный phpmyadmin или напрямую phpmyadmin.co).
- Если вам удалось получить доступ к базе данных, поздравляю! Вам остаётся только создать себе учётную запись Pterodactyl в таблице
users.
- Подключитесь к панели с созданным пользователем.
- Теперь вы подключены к панели как администратор и имеете доступ ко всему :)
На этом этапе вы должны обладать базовыми знаниями пентеста, чтобы знать, как получить обратную оболочку.