CVE-2025-49132
Pterodactylは、無料のオープンソースゲームサーバー管理パネルです。バージョン1.11.11より前では、/locales/locale.jsonにlocaleおよびnamespaceクエリパラメータを使用することで、悪意のあるユーザーが認証なしで任意のコードを実行できました。任意のコードを実行できることで、パネルのサーバーへのアクセス、パネル設定からの認証情報の読み取り、データベースからの機密情報の抽出、パネルで管理されているサーバーのファイルへのアクセスなどが可能になります。この問題はバージョン1.11.11で修正されました。この脆弱性に対するソフトウェアによる回避策はありませんが、外部Webアプリケーションファイアウォール(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>
CVE-2025-49132を使用して管理者としてPterodactylパネルにアクセスする方法
- データベースの認証情報を取得
- 見つけた認証情報を使用して、彼らのデータベースへの接続を確立する方法を見つけてください(por 3306 open, local phpmyadmin, または直接 phpmyadmin.co)
- データベースへのアクセスに成功したら、おめでとうございます!
users テーブルに自分用のPterodactylアカウントを作成するだけです。
- 作成したユーザーでパネルに接続します
- これで管理者としてパネルに接続でき、すべてにアクセスできます :)
この時点で、リバースシェルを取得する方法を知るための基本的なペネトレーションテストの知識が必要です。