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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
phpmyadmin-config-set-2fa — phpMyAdmin 5.2.3 - 高 - リモート - 2FA - config/set が二要素認証をクリアする | Kitploit
ツール/GitHubGitHub/abraxas/phpmyadmin-config-set-2fa
脆弱性分析エクスプロイトウェブアプリケーション悪用ウェブセキュリティペネトレーションテスト認証ラボと実践
GitHubabraxas/phpmyadmin-config-set-2fa

phpmyadmin-config-set-2fa

phpMyAdmin 5.2.3 - 高 - リモート - 2FA - config/set が二要素認証をクリアする

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Abraxas Labs - phpmyadmin-config-set-2fa

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  phpmyadmin-config-set-2fa

phpmyadmin-config-set-2fa

クラス: 権限の残留 / ステップアップ欠如 到達範囲: リモート

phpMyAdmin 5.2.3 (RELEASE_5_2_3 / 962857e) - phpMyAdmin

POST index.php?route=/config/set は、2fa を含む許可リスト内の任意の設定を書き込みます。UserPreferences::persistOption は検証を行いません。設定 -> 二要素認証は、要素を削除する前に TwoFactor::check(true) を呼び出します。/config/set は呼び出しません。

ログイン済みセッション、またはページトークンを POST できる XSS/CSRF は、key=2fa と value=null を送信できます。次回のパスワードログインでは、TOTP、WebAuthn、Simple のプロンプトが表示されません。1 回のリクエストスキップではなく、永続的な削除です。

IDCVE 未割り当て
クラス権限の残留 / ステップアップ欠如
到達範囲リモート (認証済み Cookie ログイン、CSRF トークンが必要)
CWECWE-620
CVSSHigh: 8.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
製品phpMyAdmin
影響を受けるバージョン5.2.3 タグ RELEASE_5_2_3 (962857e4f63d42e38f11ff4d63f5e722018add76)
認証Cookie ログイン。CSRF トークンが必要。XSS または CSRF を永続的な 2FA 削除に完結させる
ライセンスGNU Affero GPL v3.0
ラボ127.0.0.1 のみ

攻撃者ができること

TOTP、WebAuthn、Simple 確認フィールドを提示せずに、phpMyAdmin アカウントから 2FA を削除します。次回のパスワードログインはパスワードのみになります。その MySQL ユーザーとしての完全な PMA (SQL、ユーザー、エクスポート)。

権限メソッド / パス偵察 / 完全性 / 可用性ラボで実証済みまたは推測
2fa を null に永続化し、pmadb から第二要素を削除認証済み POST index.php?route=/config/set key=2fa value=null と有効な token設定ストアの完全性ラボで実証済み。success:true、pmadb の config_data が [] に
その書き込み後にパスワードのみでログイン新しい Cookie セッション、同じ MySQL ユーザーログインパスの完全性ラボで実証済み。2fa_confirm なし、通常の UI に到達
以降のログインで 2FA が消える間、現在のセッションを維持同じハンドラ。persistOption はストアを書き込み、ライブの two_factor_check フラグは書き込まない以降のセッションの完全性ラボで実証済み。セッション A は維持。セッション B は 2FA を確認済み。セッション C は未確認
ページトークン付きで POST できる保存型 XSS または CSRF からの連鎖同じレビューの残留、このラボではない同一オリジン POST 後の 2FA の完全性推測
設定から 2FA を削除POST /preferences/two-factor 2fa_remove=1文書化された UI 経由の 2FA の完全性ラボで実証済みのクローズ。要素なしでは、PMA は確認ページを表示し、pmadb には依然 backend=simple がある

この残留でクローズ済み: 未認証アクセス、MySQL パスワードのスキップ、OS RCE、他ユーザーの pmadb 行の読み取り。残留 #1 (CustomServer 署名) は不要でした。MySQL パスワードはスキップしていません。

同じピン: WebAuthn CustomServer 残留。

発見方法

PMASA-2025-1/2/3 の後に 5.2.3 をピン留めしました。Cookie 認証、pmadb pma__userconfig。ラボは、設定がハードウェアキーなしで Simple バックエンドを登録できるようにするためだけに $cfg['DBG']['simple2fa'] を有効にします。TOTP と WebAuthn は同じ 2fa 設定キーに存在します。

SetConfigController は key と JSON value を受け取り、Config::setUserValue を呼び出します。UserPreferences::persistOption は「検証は行われません!」と文書化されています。apply() は 2fa を許可リストに含めるため、キーは未知の設定として破棄されません。

$result = $this->config->setUserValue(null, $key, json_decode($value));

json_decode('null') は PHP の null です。persistOption('2fa', null, $default) は、そのパスのデフォルトも null であるため、config_data['2fa'] を unset します。

設定 -> 二要素認証は対照的です。TwoFactorController は TwoFactor::check(true) が true を返すまで configure('') を行いません。

すでに記録済みの誤った方向: 設定の 2fa_remove を穴と見なす (依然として要素を要求する)、未認証アクセスを主張する、MySQL パスワードのスキップを主張する、これを残留 #1 (CustomServer) と見なす、リバースシェル。茶番です。

ラボ

python3 phpmyadmin-config-set-2fa-Abraxas-Labs.py
# or: cd lab && ./run.sh

ターゲットは http://127.0.0.1:19280 のみ。Compose プロジェクト phpmyadmin-config-set-2fa。ピン RELEASE_5_2_3。run.sh はそのタグをイメージ用に lab/src/ へコピーまたはクローンします。スタックは実行後に破棄されます。

設定で Simple 2FA を登録しました。2 番目のブラウザが 2fa_confirm ページに到達しました。要素なしの 2fa_remove の POST は確認 UI に留まり、pmadb に backend=simple を残しました。その後 /config/set の POST が success:true を返し、pmadb が [] になり、次のログインは通常の UI に到達しました。

SUCCESS phpmyadmin-config-set-2fa enroll=simple ui-remove-blocked=yes config-set-cleared=yes next-login-password-only=yes PMA-CONFIG-SET-2FA-WITNESS

修正

/config/set で 2fa (およびその他の認証キー) を拒否します。2FA の変更前に TwoFactor::check(true) を要求します。設定パスを唯一の書き込み元として維持します。

参考資料

  • github.com/phpmyadmin/phpmyadmin タグ RELEASE_5_2_3 (962857e4f63d42e38f11ff4d63f5e722018add76)
  • libraries/classes/Controllers/Config/SetConfigController.php
  • libraries/classes/Config/UserPreferences.php
  • 同じピン: PMA-5.2.3-WebAuthn-2FA
  • CWE-620

ライセンス

GNU Affero GPL v3.0。LICENSE を参照。ループバックラボのみ。無保証。

ツールをダウンロード