Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
phpmyadmin-config-set-2fa — phpMyAdmin 5.2.3 – Hoch – Remote – 2FA – config/set löscht Zwei-Faktor | Kitploit
Tools/GitHubGitHub/abraxas/phpmyadmin-config-set-2fa
SchwachstellenanalyseExploitationWebanwendungs-ExploitationWebsicherheitPenetrationstestsAuthentifizierungLabs & Praxis
GitHubabraxas/phpmyadmin-config-set-2fa

phpmyadmin-config-set-2fa

phpMyAdmin 5.2.3 – Hoch – Remote – 2FA – config/set löscht Zwei-Faktor

Repository anzeigen
9vor 4 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Abraxas Labs - phpmyadmin-config-set-2fa

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

phpmyadmin-config-set-2fa

Klasse: Privilegien-Überrest / fehlender Step-up Reichweite: Remote

phpMyAdmin 5.2.3 (RELEASE_5_2_3 / 962857e) - phpMyAdmin

POST index.php?route=/config/set schreibt jede allowlistete Präferenz, einschließlich 2fa. UserPreferences::persistOption führt keine Validierung durch. Einstellungen -> Zwei-Faktor ruft weiterhin TwoFactor::check(true) auf, bevor der Faktor entfernt wird. /config/set tut das nicht.

Eine angemeldete Sitzung oder XSS/CSRF, das das Seitentoken per POST senden kann, kann key=2fa und value=null senden. Der nächste Passwort-Login hat keine TOTP-, WebAuthn- oder Simple-Abfrage. Dauerhafte Entfernung, kein einmaliges Überspringen.

IDnoch keine CVE
KlassePrivilegien-Überrest / fehlender Step-up
ReichweiteRemote (authentifizierter Cookie-Login; CSRF-Token erforderlich)
CWECWE-620
CVSSHoch: 8.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
ProduktphpMyAdmin
Betroffen5.2.3 Tag RELEASE_5_2_3 (962857e4f63d42e38f11ff4d63f5e722018add76)
AuthCookie-Login. CSRF-Token erforderlich. Vollendet XSS oder CSRF zu einer dauerhaften 2FA-Entfernung
LizenzGNU Affero GPL v3.0
Labnur 127.0.0.1

Was ein Angreifer tun kann

2FA von einem phpMyAdmin-Konto entfernen, ohne TOTP, WebAuthn oder das Simple-Bestätigungsfeld vorzulegen. Der nächste Passwort-Login erfolgt nur mit Passwort. Volles PMA als dieser MySQL-Benutzer (SQL, Benutzer, Export).

PrivilegMethode / PfadRecon / Integrität / VerfügbarkeitLab-bewiesen oder abgeleitet
2fa auf null persistieren und den zweiten Faktor aus pmadb entfernenAuthentifiziertes POST index.php?route=/config/set key=2fa value=null plus ein gültiges tokenIntegrität des PräferenzspeichersLab-bewiesen. success:true, pmadb config_data wurde []
Nach diesem Schreibvorgang nur mit Passwort anmeldenNeue Cookie-Sitzung, derselbe MySQL-BenutzerIntegrität des Login-PfadsLab-bewiesen. Kein 2fa_confirm, landete in der normalen UI
Die aktuelle Sitzung behalten, während 2FA für spätere Logins verschwindetDerselbe Handler; persistOption schreibt den Speicher, nicht das Live-Flag two_factor_checkIntegrität späterer SitzungenLab-bewiesen. Sitzung A blieb drin. Sitzung B hatte 2FA gesehen. Sitzung C nicht
Verkettung von gespeichertem XSS oder CSRF, das mit dem Seitentoken per POST senden kannÜberreste aus derselben Prüfung, nicht dieses LabIntegrität von 2FA nach einem Same-Origin-POSTAbgeleitet
2FA über Einstellungen entfernenPOST /preferences/two-factor 2fa_remove=1Integrität von 2FA über die dokumentierte UILab-bewiesen geschlossen. Ohne den Faktor zeigt PMA die Bestätigungsseite und pmadb hat weiterhin backend=simple

Geschlossen bei diesem Überrest: unauthentifizierter Zugriff, Umgehung des MySQL-Passworts, OS-RCE, Lesen der pmadb-Zeilen anderer Benutzer. Ich brauchte Überrest #1 (CustomServer-Signatur) nicht. Ich habe das MySQL-Passwort nicht umgangen.

Gleicher Pin: WebAuthn CustomServer leftover.

Wie ich es gefunden habe

Ich habe 5.2.3 nach PMASA-2025-1/2/3 gepinnt. Cookie-Auth, pmadb pma__userconfig. Das Lab aktiviert $cfg['DBG']['simple2fa'] nur, damit Einstellungen das Simple-Backend ohne Hardware-Schlüssel registrieren können. TOTP und WebAuthn liegen im selben 2fa-Präferenzschlüssel.

SetConfigController nimmt key und JSON value und ruft Config::setUserValue auf. UserPreferences::persistOption ist dokumentiert mit "No validation is done!" apply() allowlistet 2fa, damit der Schlüssel nicht als unbekannte Präferenz verworfen wird.

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

json_decode('null') ist PHP null. persistOption('2fa', null, $default) hebt dann config_data['2fa'] auf, weil der Standardwert für diesen Pfad ebenfalls null ist.

Einstellungen -> Zwei-Faktor ist der Kontrast. TwoFactorController wird configure('') erst aufrufen, wenn TwoFactor::check(true) true zurückgibt.

Bereits festgehaltene Irrwege: Einstellungen 2fa_remove als die Lücke zu behandeln (es verlangt weiterhin den Faktor); unauthentifizierten Zugriff zu behaupten; eine Umgehung des MySQL-Passworts zu behaupten; dies als Überrest #1 (CustomServer) zu behandeln; eine Reverse Shell. Theater.

Lab

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

Ziel nur http://127.0.0.1:19280. Compose-Projekt phpmyadmin-config-set-2fa. Pin RELEASE_5_2_3. run.sh kopiert oder klont diesen Tag nach lab/src/ für das Image. Der Stack wird nach dem Lauf abgebaut.

Einstellungen registrierten Simple 2FA. Ein zweiter Browser rief die 2fa_confirm-Seite auf. POST 2fa_remove ohne den Faktor blieb auf der Bestätigungs-UI und ließ backend=simple in pmadb. POST /config/set gab dann success:true zurück, pmadb wurde [], und der nächste Login landete in der normalen 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

Der Fix

2fa (und andere Auth-Schlüssel) auf /config/set verweigern. TwoFactor::check(true) vor jeder 2FA-Änderung verlangen. Den Einstellungen-Pfad als einzigen Schreiber beibehalten.

Referenzen

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

Lizenz

GNU Affero GPL v3.0. Siehe LICENSE. Nur Loopback-Lab. Keine Gewährleistung.

Tool herunterladen