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-setup-validate — phpMyAdmin 5.2.3 – Hoch – Remote – verbleibend – setup/validate weiterhin erreichbar | Kitploit
Tools/GitHubGitHub/abraxas/phpmyadmin-setup-validate
SchwachstellenanalyseExploitationWebanwendungs-ExploitationWebsicherheitPenetrationstestsLabs & Praxis
GitHubabraxas/phpmyadmin-setup-validate

phpmyadmin-setup-validate

phpMyAdmin 5.2.3 – Hoch – Remote – verbleibend – setup/validate weiterhin erreichbar

Repository anzeigen
6vor 7 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-setup-validate

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

Write-up: https://abraxaslabs.tech/research/phpmyadmin-setup-validate

phpmyadmin-setup-validate

Klasse: SSRF Reichweite: Remote

phpMyAdmin 5.2.3 (Tag RELEASE_5_2_3, Commit 962857e). setup/index.php bricht ab, wenn config.inc.php vorhanden ist. setup/validate.php nicht. Es wird weiterhin unter $isMinimumCommon geladen, holt sich ein CSRF-Token von der öffentlichen Login-Seite und ruft Validator::testDBConnection -> mysqli_connect mit Host, Port, Benutzer und Passwort aus dem JSON-Feld values auf.

Ein nicht authentifizierter Client sendet ein GET an /, um ein Session-Cookie und ein Token zu erhalten, und sendet dann ein POST an setup/validate.php mit id=Server sowie selbst gewähltem Servers/1/host und Servers/1/port. Der phpMyAdmin-Host öffnet einen TCP-MySQL-Handshake zu dieser Adresse. Das ist SSRF über das MySQL-Protokoll: internes 3306, Credential Stuffing gegen einen internen Server, ein Port-Orakel aus Timing und mysqli-Fehlern. Es ist kein HTTP-Metadata-SSRF, es sei denn, auf diesem Port spricht etwas MySQL. hide_db interpoliert außerdem einen Benutzer-Regex in preg_match. Diesen ReDoS-Pfad habe ich in diesem Lab nicht ausgeführt.

Das offizielle Image phpmyadmin:5.2.3 löscht setup/. Dieser Überrest gilt nur, wenn dieses Verzeichnis noch im Web-Root liegt, was der übliche Überrest nach einer Installation ist. Das Lab stellt setup/ aus dem 5.2.3-Tarball wieder her, damit die Version zu RELEASE_5_2_3 passt.

PMASA-2016-44 / CVE-2016-6621 deckte einige Setup-SSRF ab. Die Prüfung „Setup deaktivieren, wenn Konfiguration existiert“ wurde nie auf validate.php / config.php angewendet.

IDnoch keine CVE
KlasseSSRF (MySQL-Protokoll)
ReichweiteRemote (nicht authentifiziert, wenn setup/ noch über das Web erreichbar ist)
CWECWE-918
CVSSHoch: 7.2 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N
ProduktphpMyAdmin
Betroffen5.2.3 Tag RELEASE_5_2_3 (962857e) mit setup/ noch im Docroot
AuthNicht authentifiziert. CSRF-Token von der öffentlichen Login-Seite. Kein MySQL-Login.
LizenzGNU Affero GPL v3.0
Labnur 127.0.0.1:19230

Was ein Angreifer tun kann

Jeder, der einen zurückgebliebenen setup/-Baum erreichen kann, kann den phpMyAdmin-Host dazu bringen, eine TCP-Verbindung mit MySQL-Protokoll zu einem selbst gewählten Host und Port zu öffnen.

BerechtigungMethode / PfadIm Lab nachgewiesen oder abgeleitet
TCP vom PMA-Host zum Angreifer-Host:Port öffnen (Integrität des ausgehenden Verbindungsaufbaus; Recon dieses Ports)Nicht authentifiziertes POST /setup/validate.php id=Server mit Servers/1/host + Servers/1/port plus einem Token aus GET /Im Lab nachgewiesen. Orakel auf oracle:13306 protokollierte PMA-SETUP-VALIDATE-WITNESS aus dem PMA-Container
Bestätigen, dass die Setup-UI aus ist, während validate an bleibtGET /setup/index.phpIm Lab nachgewiesen. Body enthält „setup is disabled“ / configuration already exists
Fail closed ohne das CSRF-Token der Login-SeiteDerselbe POST, ohne tokenIm Lab nachgewiesen. Null Orakel-Treffer
Port-/Credential-Orakel aus mysqli-Fehlern und TimingDerselbe testDBConnectionAbgeleitet. Der Lab-Body war mysqli_connect(): (HY000/2006): MySQL server has gone away, nachdem das Orakel akzeptiert und dann geschlossen hatte
MySQL mit einem internen 3306 sprechen und geposteten Benutzer/Passwort versuchenDerselbe mysqli_connectAbgeleitet. Nicht auf den Lab-db-Dienst gerichtet
ReDoS über validateRegex, das Benutzer-Regex interpoliertid=Servers/1/hide_dbAbgeleitet. Nicht ausgeführt

Auf diesem Lab geschlossen: HTTP-Metadaten-SSRF (der Handshake ist MySQL, nicht GET /latest/meta-data), unauthentifizierter PMA-Login, OS-Shell und der Setup-Assistent selbst (index.php bleibt deaktiviert). FAIL, wenn setup/ nicht bereitgestellt ist (Standard des offiziellen Images).

Wie ich es gefunden habe

Acht parallele Quellensuchen in RELEASE_5_2_3. setup/index.php hat den Fatal-Fehler bei vorhandener Konfiguration. setup/validate.php nicht. setup/lib/common.inc.php setzt $isMinimumCommon und sucht nicht nach CONFIG_FILE.

Irrwege: das offizielle Image für diesen Überrest zu halten (es löscht setup/); POSTen ohne das Token der Login-Seite (null Oracle-Treffer); dies für HTTP-Metadaten-SSRF zu halten (der Handshake ist MySQL).

Lab

python3 phpmyadmin-setup-validate-Abraxas-Labs.py

oder

cd lab
./run.sh

Nur Loopback: http://127.0.0.1:19230. Compose-Projekt phpmyadmin-setup-validate. Das Dockerfile stellt setup/ aus dem 5.2.3-Tarball wieder her und betreibt ein TCP-Oracle auf Port 13306. Witness PMA-SETUP-VALIDATE-WITNESS.

SUCCESS phpmyadmin-setup-validate how=live tcp=yes setup-index-disabled=yes PMA-SETUP-VALIDATE-WITNESS

Die Behebung

Setze den file_exists(CONFIG_FILE)-Fatalfehler in setup/lib/common.inc.php ab, sodass jedes Setup-Skript abbricht. Beschränke die Hosts von testDBConnection. Baue keine preg_match-Delimiter aus Benutzerzeichenketten.

Referenzen

  • github.com/phpmyadmin/phpmyadmin Tag RELEASE_5_2_3 (962857e)
  • setup/index.php Fatalfehler bei vorhandener Konfiguration
  • setup/validate.php ohne diese Prüfung
  • libraries/classes/Config/Validator.php testDBConnection / mysqli_connect
  • Reste derselben Fixierung: phpmyadmin-webauthn · phpmyadmin-pmadb-central-sqli · phpmyadmin-designer-json-sqli · phpmyadmin-csrf-sql
  • CWE-918

Lizenz

GNU Affero GPL v3.0. Siehe LICENSE. Nur für Loopback-Labore. Keine Gewährleistung.

Tool herunterladen