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-webauthn — phpMyAdmin 5.2.3 – Hoch – Remote – 2FA-Überspringen – WebAuthn-Zeremonie kann übersprungen werden | Kitploit
Tools/GitHubGitHub/abraxas/phpmyadmin-webauthn
SchwachstellenanalyseExploitationWebanwendungs-ExploitationWebsicherheitPenetrationstestsAuthentifizierungLabs & Praxis
GitHubabraxas/phpmyadmin-webauthn

phpmyadmin-webauthn

phpMyAdmin 5.2.3 – Hoch – Remote – 2FA-Überspringen – WebAuthn-Zeremonie kann übersprungen werden

Repository anzeigen
9vor 3 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-webauthn

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

phpmyadmin-webauthn

Klasse: 2FA-Bypass Reichweite: Remote

phpMyAdmin 5.2.3 (Tag RELEASE_5_2_3). Standard-Tarball. web-auth/webauthn-lib ist suggest / require-dev. composer install --no-dev installiert es nicht. createServer verwendet daher CustomServer. Diese Klasse parst response.signature (das Feld muss existieren und dekodieren) und führt niemals eine COSE-Verifikation durch. Sie verwendet niemals den gespeicherten credentialPublicKey. Der eigene CustomServerTest des Produkts akzeptiert eine Assertion ohne Public Key.

Strukturelle Prüfungen sind echt: Credential-ID in allowCredentials, clientData.type == webauthn.get, Challenge stimmt mit Session überein, Origin-Host, rpIdHash, User-Present. Die Signatur wird geparst und ignoriert. Nach dem MySQL-Passwort ist eine Müll-WebAuthn-Signatur, die noch zu diesen Feldern passt, eine vollständige phpMyAdmin-Session. Das ist die Datenbank. Wenn Sie tatsächlich web-auth/webauthn-lib installiert haben, sind Sie auf WebauthnLibServer und nicht von diesem Bug betroffen.

IDnoch keine CVE
Klasse2FA-Bypass / fehlende Signaturverifikation
ReichweiteRemote (Cookie-Login, dann WebAuthn übersprungen)
CWECWE-347, CWE-287
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. Standard-Tarball / composer install --no-dev
AuthCookie-Login (MySQL-Passwort), dann WebAuthn übersprungen
LizenzGNU Affero GPL v3.0
Labnur 127.0.0.1:18080

Was ein Angreifer tun kann

Er benötigt weiterhin das MySQL-Passwort (Cookie-Login). Nach diesem Passwort sendet er webauthn_request_response per POST mit passender Challenge, Origin-Host, rpIdHash, User-Present, registrierter Credential-ID und einer Müll-Signatur. Er landet in der normalen UI. 2FA ist weg. Das ist die Datenbank (SQL, Benutzer, Export), keine PHP-Shell auf dem Host.

Wenn Sie tatsächlich web-auth/webauthn-lib installiert haben, sind Sie auf WebauthnLibServer und nicht von diesem Bug betroffen.

PrivilegMethode / PfadIm Lab bewiesen oder abgeleitet
Vollständige WebAuthn-2FA ohne den Authenticator (Integrität des zweiten Faktors)POST webauthn_request_response nach Passwort, Müll-SignaturIm Lab bewiesen. still_2fa=False landed=True
Vollständiges PMA als dieser MySQL-Benutzer (Integrität + Recon der SQL-Box)dieselbe SessionIm Lab bewiesen. Home-UI-Marker vorhanden
MySQL-Passwort überspringenunauthentifizierter POSTIm Lab bewiesen geschlossen. Bleibt auf Login
Derselbe Bypass mit installiertem web-auth/webauthn-libWebauthnLibServerGeschlossen. Nicht dieser Leftover
OS-RCE / Reverse Shelldieser LeftoverGeschlossen

Geschlossen bei diesem Leftover: unauthentifiziertes PMA, eine PHP-Shell auf dem Host und die Behandlung eines Tarballs, der tatsächlich web-auth/webauthn-lib installiert hat, als dieser Bug.

Wie ich es gefunden habe

Ich las createServer, dann parseAndValidateAssertionResponse, dann den Unit-Test, der keinen Public Key übergibt. Strukturelle Prüfungen sind echt. Die Signatur wird geparst und ignoriert.

Irrwege: POSTen von WebAuthn-JSON ohne vorherige Passwort-Session; eine Signatur, die die strukturellen Prüfungen nicht bestand; Webauthn\Server noch vorhanden (falsche Server-Klasse); Challenge nicht aus dieser Session; Origin-Host-Mismatch; User-Present-Flag nicht gesetzt; Credential-ID nicht in allowCredentials.

Das Lab-Dockerfile kopiert 5.2.3, composer install --no-dev, löscht dann vendor/web-auth, damit CustomServer derjenige ist, der zum Einsatz kommt. Das letzte php -r beendet mit 1, wenn Webauthn\Server existiert. init.sql registriert WebAuthn-2FA für appuser ohne Hardware-Key. Das PoC sendet per POST die Signatur not-a-real-signature-PMA-WEBAUTHN-BYPASS.

Lab

Klonen Sie den Pin neben das Dockerfile, dann führen Sie aus:

cd lab
git clone --depth 1 --branch RELEASE_5_2_3 https://github.com/phpmyadmin/phpmyadmin.git src
./run.sh

oder aus dem Pack-Root nach diesem Clone:

python3 phpmyadmin-webauthn-Abraxas-Labs.py

Nur Loopback: http://127.0.0.1:18080. Compose-Projekt pma-webauthn-lab. Pin RELEASE_5_2_3. src/ nicht ausliefern. Witness PMA-WEBAUTHN-BYPASS.

SUCCESS PMA-WEBAUTHN-BYPASS WebAuthn 2FA accepted with garbage signature

Der Fix

Verifizieren Sie authenticatorData || SHA-256(clientDataJSON) mit dem gespeicherten COSE-Public-Key; binden Sie userHandle; erzwingen Sie signCount. Machen Sie web-auth/webauthn-lib zu einer echten Abhängigkeit und löschen Sie CustomServer, oder schlagen Sie fail-closed fehl, wenn die Bibliothek fehlt. Bis dahin deaktivieren Sie WebAuthn-2FA oder exponieren Sie dieses phpMyAdmin nicht.

Referenzen

  • github.com/phpmyadmin/phpmyadmin Tag RELEASE_5_2_3
  • Plugins\TwoFactor\WebAuthn::createServer
  • CustomServer::parseAndValidateAssertionResponse
  • Leftovers desselben Pins: phpmyadmin-pmadb-central-sqli · phpmyadmin-designer-json-sqli · phpmyadmin-setup-validate · phpmyadmin-csrf-sql
  • CWE-347 · CWE-287

Lizenz

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

Tool herunterladen