Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
phpmyadmin-setup-validate — phpMyAdmin 5.2.3 - 高 - リモート - 残存 - setup/validate が依然として到達可能 | Kitploit
ツール/GitHubGitHub/abraxas/phpmyadmin-setup-validate
脆弱性分析エクスプロイトウェブアプリケーション悪用ウェブセキュリティペネトレーションテストラボと実践
GitHubabraxas/phpmyadmin-setup-validate

phpmyadmin-setup-validate

phpMyAdmin 5.2.3 - 高 - リモート - 残存 - setup/validate が依然として到達可能

リポジトリを見る
67日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Abraxas Labs - phpmyadmin-setup-validate

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  phpmyadmin-setup-validate

解説記事: https://abraxaslabs.tech/research/phpmyadmin-setup-validate

phpmyadmin-setup-validate

クラス: SSRF 到達性: リモート

phpMyAdmin 5.2.3(タグ RELEASE_5_2_3、コミット 962857e)。config.inc.php が存在する場合、setup/index.php は停止する。しかし setup/validate.php は停止しない。これは依然として $isMinimumCommon の下で読み込まれ、公開ログインページから CSRF トークンを取得し、JSON の values フィールドにあるホスト、ポート、ユーザー、パスワードに対して Validator::testDBConnection -> mysqli_connect を呼び出す。

未認証のクライアントは / に GET してセッション Cookie とトークンを取得し、その後 setup/validate.php に id=Server と任意の Servers/1/host および Servers/1/port を付けて POST する。phpMyAdmin ホストはそのアドレスに対して TCP の MySQL ハンドシェイクを開始する。これが MySQL プロトコルを介した SSRF である。内部の 3306、内部サーバーに対するクレデンシャルスタッフィング、タイミングと mysqli エラーによるポートオラクルが該当する。そのポート上で MySQL を話す何かが存在しない限り、HTTP メタデータ SSRF ではない。また hide_db はユーザー正規表現を preg_match に補間する。このラボではその ReDoS 経路は実行していない。

公式の phpmyadmin:5.2.3 イメージは setup/ を削除する。この残存物は、そのディレクトリが依然としてウェブルート内に存在する場合にのみ該当し、これはインストール後に残る一般的な残存物である。ラボではピンが RELEASE_5_2_3 と一致するように、5.2.3 の tarball から setup/ を復元する。

PMASA-2016-44 / CVE-2016-6621 は一部の setup SSRF をカバーしていた。「config が存在する場合に setup を無効化する」チェックは validate.php / config.php には適用されていなかった。

IDCVE 未割当
クラスSSRF(MySQL プロトコル)
到達性リモート(setup/ が依然としてウェブから到達可能な場合は未認証)
CWECWE-918
CVSSHigh: 7.2 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N
製品phpMyAdmin
影響範囲5.2.3 タグ RELEASE_5_2_3(962857e)で setup/ がドキュメントルートに残存しているもの
認証未認証。公開ログインページから取得した CSRF トークン。MySQL ログインは不要。
ライセンスGNU Affero GPL v3.0
ラボ127.0.0.1:19230 のみ

攻撃者ができること

残存する setup/ ツリーに到達できる者は誰でも、phpMyAdmin ホストに対して任意のホストとポートへの MySQL プロトコル TCP 接続を開始させることができる。

権限メソッド / パスラボ実証済みか推測か
PMA ホストから攻撃者の host:port への TCP 接続を開く(外向き接続の完全性、そのポートの偵察)未認証の POST /setup/validate.php に id=Server、Servers/1/host + Servers/1/port、および GET / から取得したトークンを付与ラボ実証済み。oracle:13306 上のオラクルが PMA コンテナからの PMA-SETUP-VALIDATE-WITNESS を記録した
validate が有効なまま setup UI が無効であることを確認GET /setup/index.phpラボ実証済み。ボディに「setup is disabled」/ 設定が既に存在する旨が含まれる
ログインページの CSRF トークンなしではフェイルクローズする同じ POST を token なしで実行ラボ実証済み。オラクルへのヒットはゼロ
mysqli エラーとタイミングによるポート / クレデンシャルオラクル同じ testDBConnection推測。ラボのボディは、オラクルが受け入れてから閉じた後に mysqli_connect(): (HY000/2006): MySQL server has gone away であった
内部の 3306 と MySQL で通信し、POST されたユーザー/パスワードを試行同じ mysqli_connect推測。ラボの db サービスには向けていない
ユーザー正規表現を補間する validateRegex による ReDoSid=Servers/1/hide_db推測。実行していない

このラボではクローズ済み: HTTPメタデータSSRF(ハンドシェイクはMySQLであり、GET /latest/meta-data ではない)、未認証のPMAログイン、OSシェル、そしてセットアップウィザード自体(index.php は無効のまま)。setup/ がデプロイされていない場合(公式イメージのデフォルト)はFAIL。

発見の経緯

RELEASE_5_2_3 に対する8並列のソース探索。setup/index.php には設定ファイル存在時の致命的エラーがある。setup/validate.php にはない。setup/lib/common.inc.php は $isMinimumCommon を設定し、CONFIG_FILE を探さない。

誤った方向性: 公式イメージをこの残存物とみなすこと(公式イメージは setup/ を削除する)、ログインページのトークンなしでPOSTすること(オラクルヒットはゼロ)、これをHTTPメタデータSSRFとみなすこと(ハンドシェイクはMySQL)。

ラボ

python3 phpmyadmin-setup-validate-Abraxas-Labs.py

または

cd lab
./run.sh

ループバックのみ: http://127.0.0.1:19230。Compose プロジェクト phpmyadmin-setup-validate。Dockerfile は 5.2.3 tarball から setup/ を復元し、ポート 13306 で TCP オラクルを実行します。ウィットネス PMA-SETUP-VALIDATE-WITNESS。

SUCCESS phpmyadmin-setup-validate how=live tcp=yes setup-index-disabled=yes PMA-SETUP-VALIDATE-WITNESS

修正

file_exists(CONFIG_FILE) の致命的エラーを setup/lib/common.inc.php に配置し、すべてのセットアップスクリプトが停止するようにします。testDBConnection のホストを制限します。ユーザー文字列から preg_match のデリミタを構築しないでください。

参考資料

  • github.com/phpmyadmin/phpmyadmin タグ RELEASE_5_2_3 (962857e)
  • setup/index.php の設定存在時の致命的エラー
  • setup/validate.php にそのチェックがない
  • libraries/classes/Config/Validator.php の testDBConnection / mysqli_connect
  • 同じピンの残存物: phpmyadmin-webauthn · phpmyadmin-pmadb-central-sqli · phpmyadmin-designer-json-sqli · phpmyadmin-csrf-sql
  • CWE-918

ライセンス

GNU Affero GPL v3.0。LICENSE を参照してください。ループバックラボ専用。保証なし。

ツールをダウンロード