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-auth-plugin-unquoted — phpMyAdmin 5.2.3 – Hoch – Remote – SQLi – auth plugin identifier unquoted | Kitploit
Tools/GitHubGitHub/abraxas/phpmyadmin-auth-plugin-unquoted
SchwachstellenscannerSchwachstellenanalyseExploitationWebanwendungs-ExploitationWebsicherheitPenetrationstestsDatenbanksicherheit
GitHub
abraxas/phpmyadmin-auth-plugin-unquoted

phpmyadmin-auth-plugin-unquoted

phpMyAdmin 5.2.3 – Hoch – Remote – SQLi – auth plugin identifier unquoted

Repository anzeigen
vor 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-auth-plugin-unquoted

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

phpmyadmin-auth-plugin-unquoted

Klasse: SQLi Reichweite: Remote

phpMyAdmin 5.2.3 (RELEASE_5_2_3 / 962857e) - phpMyAdmin

Passwort ändern ist standardmäßig aktiviert. UserPassword.php kopiert POST authentication_plugin in ALTER USER ... IDENTIFIED WITH ohne Allowlist und ohne Quoting. Benutzername, Host und Passwort in derselben Anweisung durchlaufen escapeString. Auf MySQL 8 wird die WITH-Klausel ausgegeben, wenn das übermittelte Plugin vom aktuellen abweicht.

Ein angemeldeter phpMyAdmin-Benutzer injiziert SQL in sein eigenes ALTER USER über das Formular zum Ändern des Passworts. Zusätzliches SQL im Plugin-Feld ist SQL, kein Plugin-Name.

IDnoch keine CVE
KlasseSQLi
ReichweiteRemote (authentifizierter Cookie-Login; Passwort ändern aktiv)
CWECWE-89
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)
Authauthentifizierter Cookie-Login. $cfg['ShowChgPassword'] standardmäßig true. Auth-Typ ist nicht config
LizenzGNU Affero GPL v3.0
Labnur 127.0.0.1

Was ein Angreifer tun kann

Ein angemeldeter phpMyAdmin-Benutzer kann SQL in sein eigenes ALTER USER über das Formular zum Ändern des Passworts injizieren.

PrivilegMethode / SinkRecon / Integrität / VerfügbarkeitIm Lab bewiesen oder abgeleitet
Zusätzliches SQL in IDENTIFIED WITH sendenPOST index.php?route=/user-password mit authentication_pluginIntegrität der von phpMyAdmin erstellten AnweisungIm Lab bewiesen. Rohes POST sha256_password /*PMA-AUTH-PLUGIN-UNQUOTED-WITNESS*/ erscheint unquoted im SQL-Feld
MySQL das zusätzliche SQL als SQL parsen lassenDieselbe Anweisung erreicht mysqldIntegrität der BenutzerverbindungIm Lab bewiesen. General Log behielt Plugin sha256_password und verwarf den Kommentar. 1227, weil dieser Benutzer kein CREATE USER hat
Zusätzliche Klauseln oder zusätzliche Konten, wenn der Breakout parstDerselbe Sink; gestapelte Queries hängen vom Treiber abIntegrität anderer KontenAbgeleitet. Dieses Lab führt keine zweite Anweisung aus und erstellt kein weiteres Konto
Dieselbe Konkatenation bei Benutzer hinzufügen/bearbeitenPrivileges.php IDENTIFIED WITH / MariaDB VIAIntegrität der vom Grantor erstellten AnweisungenAbgeleitetes Geschwister. Lab-POST ist nur Passwort ändern

Auf diesem Pfad geschlossen: unauthentifizierte Nutzung (Cookie-Login erforderlich), config-auth (Passwort ändern ist ausgeblendet), RCE, erfolgreiche GRANT-lose Plugin-Änderung auf MySQL 8 (1227 ohne CREATE USER). Benutzername, Host und Passwort bleiben escaped. Eigenes Passwort benötigt kein GRANT; der Rest ist das unquoted Plugin-Feld, kein freier Plugin-Tausch.

Gleicher Pin: WebAuthn CustomServer leftover.

Wie ich es gefunden habe

Ich habe phpmyadmin/phpmyadmin RELEASE_5_2_3 gepinnt. PMASA-2025-1/2/3 sind bereits in 5.2.2. Passwort ändern baut weiterhin:

return 'ALTER USER \'' . $dbi->escapeString($username)
    . '\'@\'' . $dbi->escapeString($hostname)
    . '\' IDENTIFIED WITH ' . $authPlugin . ' BY '

$authPlugin ist $_POST['authentication_plugin']. MySQL 5.7.37+ und 8.0 lassen WITH weg, es sei denn, das Plugin hat sich geändert. Sende einen anderen Namen per POST und die Klausel kommt zurück.

Bereits festgehaltene Irrwege: MySQL 1227 als Fehlschlag des Restes zu behandeln (es ist der Beweis, dass zusätzliches SQL geparst wurde); eine GRANT-lose Plugin-Änderung auf MySQL 8 zu behaupten; config-auth als im Scope zu behandeln; eine Reverse Shell. Theater.

Lab

python3 phpmyadmin-auth-plugin-unquoted-Abraxas-Labs.py
# or: cd lab && ./run.sh

Ziel nur http://127.0.0.1:19260. Images phpmyadmin:5.2.3 und mysql:8.0. Compose-Projekt phpmyadmin-auth-plugin-unquoted. Stack wird nach dem Lauf abgebaut.

Cookie-Login als appuser. POST /user-password mit authentication_plugin=sha256_password /*PMA-AUTH-PLUGIN-UNQUOTED-WITNESS*/. PMA SQL-Abfragefeld: ALTER USER 'appuser'@'%' IDENTIFIED WITH sha256_password /*PMA-AUTH-PLUGIN-UNQUOTED-WITNESS*/ BY '***'. MySQL General Log parst den Kommentar und speichert IDENTIFIED WITH 'sha256_password'. Benutzername ist gequotet.

SUCCESS phpmyadmin-auth-plugin-unquoted how=live unquoted=yes escaped-user=yes plugin=sha256_password PMA-AUTH-PLUGIN-UNQUOTED-WITNESS

Der Fix

Plugin-Namen aus SHOW PLUGINS per Allowlist zulassen. Niemals POST in IDENTIFIED WITH, VIA oder plugin= interpolieren.

Referenzen

  • github.com/phpmyadmin/phpmyadmin Tag RELEASE_5_2_3 (962857e4f63d42e38f11ff4d63f5e722018add76)
  • libraries/classes/UserPassword.php
  • libraries/classes/Server/Privileges.php
  • Gleicher Pin: PMA-5.2.3-WebAuthn-2FA
  • CWE-89

Lizenz

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

Tool herunterladen