Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
phpmyadmin-config-set-2fa — phpMyAdmin 5.2.3 - Alta - Remota - 2FA - config/set cancella l'autenticazione a due fattori | Kitploit
Strumenti/GitHubGitHub/abraxas/phpmyadmin-config-set-2fa
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebSicurezza WebPenetration TestingAutenticazioneLab e Pratica
GitHubabraxas/phpmyadmin-config-set-2fa

phpmyadmin-config-set-2fa

phpMyAdmin 5.2.3 - Alta - Remota - 2FA - config/set cancella l'autenticazione a due fattori

Vedi Repository
94 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Abraxas Labs - phpmyadmin-config-set-2fa

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

phpmyadmin-config-set-2fa

Classe: Privilegio residuo / step-up mancante Portata: Remota

phpMyAdmin 5.2.3 (RELEASE_5_2_3 / 962857e) - phpMyAdmin

POST index.php?route=/config/set scrive qualsiasi preferenza in allowlist, incluso 2fa. UserPreferences::persistOption non esegue alcuna validazione. Impostazioni -> Autenticazione a due fattori chiama comunque TwoFactor::check(true) prima di rimuovere il fattore. /config/set no.

Una sessione autenticata, o XSS/CSRF in grado di effettuare il POST del token di pagina, può inviare key=2fa e value=null. Il successivo login con password non presenta alcun prompt TOTP, WebAuthn o Simple. Rimozione duratura, non un salto valido per una sola richiesta.

IDnessuna CVE al momento
ClassePrivilegio residuo / step-up mancante
PortataRemota (login autenticato tramite cookie; token CSRF richiesto)
CWECWE-620
CVSSAlto: 8.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
ProdottophpMyAdmin
Affetto5.2.3 tag RELEASE_5_2_3 (962857e4f63d42e38f11ff4d63f5e722018add76)
Authlogin tramite cookie. Token CSRF richiesto. Completa XSS o CSRF verso una rimozione duratura del 2FA
LicenzaGNU Affero GPL v3.0
Labsolo 127.0.0.1

Cosa può fare un attaccante

Rimuovere il 2FA da un account phpMyAdmin senza presentare TOTP, WebAuthn o il campo di conferma Simple. Il successivo login con password è solo password. PMA completo come quell'utente MySQL (SQL, utenti, export).

PrivilegioMetodo / percorsoRecon / integrità / disponibilitàProvato in lab o dedotto
Persistere 2fa a null e rimuovere il secondo fattore da pmadbPOST index.php?route=/config/set autenticato key=2fa value=null più un token validoIntegrità dell'archivio delle preferenzeProvato in lab. success:true, pmadb config_data è diventato []
Accedere con la sola password dopo quella scritturaNuova sessione cookie, stesso utente MySQLIntegrità del percorso di loginProvato in lab. Nessun 2fa_confirm, si è arrivati alla UI normale
Mantenere la sessione corrente mentre il 2FA scompare per i login successiviStesso handler; persistOption scrive l'archivio, non il flag two_factor_check attivoIntegrità delle sessioni successiveProvato in lab. La sessione A è rimasta dentro. La sessione B aveva visto il 2FA. La sessione C no
Concatenare da XSS memorizzato o CSRF in grado di effettuare il POST con il token di paginaResidui della stessa revisione, non questo labIntegrità del 2FA dopo un POST same-originDedotto
Rimuovere il 2FA tramite ImpostazioniPOST /preferences/two-factor 2fa_remove=1Integrità del 2FA tramite la UI documentataProvato in lab, chiuso. Senza il fattore, PMA mostra la pagina di conferma e pmadb ha ancora backend=simple

Chiusi su questo residuo: accesso non autenticato, salto della password MySQL, RCE sul sistema operativo, lettura delle righe pmadb di altri utenti. Non ho avuto bisogno del residuo #1 (firma CustomServer). Non ho saltato la password MySQL.

Stesso pin: residuo WebAuthn CustomServer.

Come l'ho trovato

Ho fissato la 5.2.3 dopo PMASA-2025-1/2/3. Auth tramite cookie, pmadb pma__userconfig. Il lab attiva $cfg['DBG']['simple2fa'] solo per permettere alle Impostazioni di registrare il backend Simple senza una chiave hardware. TOTP e WebAuthn risiedono nella stessa chiave di preferenza 2fa.

SetConfigController prende key e il value JSON e chiama Config::setUserValue. UserPreferences::persistOption è documentato "No validation is done!" apply() mette 2fa in allowlist così la chiave non viene scartata come preferenza sconosciuta.

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

json_decode('null') è null di PHP. persistOption('2fa', null, $default) quindi rimuove config_data['2fa'] perché anche il default per quel percorso è null.

Impostazioni -> Autenticazione a due fattori è il contrasto. TwoFactorController non eseguirà configure('') finché TwoFactor::check(true) non restituisce true.

Vicoli ciechi già registrati: trattare 2fa_remove delle Impostazioni come la falla (richiede comunque il fattore); sostenere l'accesso non autenticato; sostenere un salto della password MySQL; trattare questo come il residuo #1 (CustomServer); una reverse shell. Teatro.

Lab

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

Target solo http://127.0.0.1:19280. Progetto Compose phpmyadmin-config-set-2fa. Pin RELEASE_5_2_3. run.sh copia o clona quel tag in lab/src/ per l'immagine. Lo stack viene smontato dopo l'esecuzione.

Le Impostazioni hanno registrato il 2FA Simple. Un secondo browser ha raggiunto la pagina 2fa_confirm. Il POST 2fa_remove senza il fattore è rimasto sulla UI di conferma e ha lasciato backend=simple in pmadb. Il POST /config/set ha poi restituito success:true, pmadb è diventato [], e il login successivo è arrivato alla UI normale.

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

La correzione

Negare 2fa (e altre chiavi di autenticazione) su /config/set. Richiedere TwoFactor::check(true) prima di qualsiasi mutazione del 2FA. Mantenere il percorso delle Impostazioni come unico scrittore.

Riferimenti

  • github.com/phpmyadmin/phpmyadmin tag RELEASE_5_2_3 (962857e4f63d42e38f11ff4d63f5e722018add76)
  • libraries/classes/Controllers/Config/SetConfigController.php
  • libraries/classes/Config/UserPreferences.php
  • Stesso pin: PMA-5.2.3-WebAuthn-2FA
  • CWE-620

Licenza

GNU Affero GPL v3.0. Vedi LICENSE. Solo lab su loopback. Nessuna garanzia.

Scarica lo strumento