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-pmadb-central-sqli — phpMyAdmin 5.2.3 – Hoch – Remote – SQLi – central columns pmadb query leftover | Kitploit
Tools/GitHubGitHub/abraxas/phpmyadmin-pmadb-central-sqli
SchwachstellenanalyseExploitationWebanwendungs-ExploitationWebsicherheitPenetrationstestsLabs & Praxis
GitHubabraxas/phpmyadmin-pmadb-central-sqli

phpmyadmin-pmadb-central-sqli

phpMyAdmin 5.2.3 – Hoch – Remote – SQLi – central columns pmadb query leftover

Repository anzeigen
vor 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-pmadb-central-sqli

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

phpmyadmin-pmadb-central-sqli

Klasse: SQLi Reichweite: Remote

phpMyAdmin 5.2.3 (Tag RELEASE_5_2_3, Commit 962857e). Central columns schreibt col_extra, indem POST extra und attribute zu einem einfach-quotierten SQL-Literal auf dem Control-User-Link verkettet werden. Benachbarte Felder durchlaufen escapeString. Diese beiden nicht.

Ein angemeldeter Benutzer sendet per POST index.php?route=/database/central-columns mit multi_edit_central_column_save=1 und einem Anführungszeichen in field_attribute (oder col_extra). getInsertQuery / updateOneColumn führen diesen String dann als pma-Control-User gegen pma__central_columns aus. Dieses Konto ist der Konfigurationsspeicher-Benutzer, nicht die angemeldete SQL-Box.

CVE-2016-5703 war der Datenbankname in central columns. Diese extra- und attribute-Felder waren nicht dieser Bug.

IDnoch keine CVE
KlasseSQLi (Control-User auf pma__central_columns)
ReichweiteRemote (authentifizierter Cookie-Login; pmadb central columns aktiviert)
CWECWE-89
CVSSHigh: 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 (962857e)
AuthAuthentifizierter Cookie-Login. pmadb central columns aktiviert.
LizenzGNU Affero GPL v3.0
Labnur 127.0.0.1:19210

Was ein Angreifer tun kann

Ein angemeldeter phpMyAdmin-Benutzer, der Central columns öffnen kann, kann SQL als Control-User auf pma__central_columns injizieren.

PrivilegMethode / PfadIm Lab bewiesen oder abgeleitet
Den Control-User-INSERT/UPDATE-String brechen (Integrität des pmadb-SQL)POST index.php?route=/database/central-columns multi_edit_central_column_save=1 mit einem Anführungszeichen in field_attribute / col_extraIm Lab bewiesen. #1064 JSON-Fehler. Witness PMA-PMADB-CENTRAL-SQLI-WITNESS im Control-User-Fehler
Benachbarte Felder in-band haltenDerselbe POST, Anführungszeichen in field_nameIm Lab bewiesen. Zeile gespeichert als neg'col. escapeString hielt
Central-Column-Zeilen anderer Benutzer lesen oder überschreibenDerselbe Sink, sobald der String geschlossen istAbgeleitet. Lab stoppt bei Syntaxfehler; keine gestapelte Query
Zusätzliche Statements als Control-UserDerselbe Sink, falls der Control-mysqli-Link Multi-Query erlaubtAbgeleitet. Standard-mysqli::query ist Single-Statement. Hier nicht aktiviert
Andere pmadb-Tabellen erreichen (bookmarks, history, pma__userconfig)Nur falls gestapelte Queries oder ein INTO-artiger Write möglich istAbgeleitet. Control-User in diesem Lab hat nur phpmyadmin.* DML

In diesem Lab ausgeschlossen: unauthentifizierter Zugriff, die angemeldete appuser-SQL-Box (nur appdb), OS-Shell und gestapelte Queries. Feature no-ops, wenn pmadb / central columns aus ist (das ist ein FAIL, nicht dieser Leftover).

Wie ich es gefunden habe

Acht parallele Source-Hunts von RELEASE_5_2_3. Benachbarte Felder in CentralColumns.php werden escapeString'd. Extra und attribute werden per implode in ein einfach-quotiertes Literal überführt. CVE-2016-5703 war der Datenbankname, nicht diese Spalten.

Irrwege: ein Anführungszeichen in field_name als Leftover zu behandeln (es wird als neg'col gespeichert; das ist die Negativkontrolle); zu erwarten, dass das General Log den unescapten Witness zeigt (der INSERT stirbt mit #1064 vor einem erfolgreichen Write); pmadb-off als diesen Leftover zu behandeln (Feature no-ops).

Lab

python3 phpmyadmin-pmadb-central-sqli-Abraxas-Labs.py

oder

cd lab
./run.sh

Nur Loopback: http://127.0.0.1:19210. Images phpmyadmin:5.2.3 und mysql:8.0. Compose-Projekt phpmyadmin-pmadb-central-sqli. Witness PMA-PMADB-CENTRAL-SQLI-WITNESS.

SUCCESS phpmyadmin-pmadb-central-sqli how=live insert-syntax=yes field-name-escaped=yes general-log-unescaped=false error-has-witness=true PMA-PMADB-CENTRAL-SQLI-WITNESS

Der Fix

escapeString / quoteString(..., CONNECT_CONTROL) auf extra und attribute. Allowlist auto_increment, UNSIGNED, BINARY, UNSIGNED ZEROFILL und on update CURRENT_TIMESTAMP. phpMyAdmin 6.x quoteString auf dem Designer-JSON-Blob ist die gepatchte Form für diese Klasse von pmadb-Concat.

Referenzen

  • github.com/phpmyadmin/phpmyadmin Tag RELEASE_5_2_3 (962857e)
  • libraries/classes/Database/CentralColumns.php getInsertQuery / updateOneColumn
  • Controllers/Database/CentralColumnsController.php POST multi_edit_central_column_save
  • Route GET|POST /database/central-columns
  • Leftovers desselben Pins: phpmyadmin-webauthn · phpmyadmin-designer-json-sqli · phpmyadmin-setup-validate · phpmyadmin-csrf-sql
  • CWE-89

Lizenz

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

Tool herunterladen