
CVE-2025-49132に対して脆弱なPterodactylパネルの認証情報を取得するスクリプト
/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>
users テーブルに自分用のPterodactylアカウントを作成するだけですこの時点で、リバースシェルを取得する方法を知るために、基本的なペンテスティングの知識が必要です。