Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
phpmyadmin-pmadb-central-sqli — phpMyAdmin 5.2.3 - Élevé - À distance - SQLi - colonnes centrales pmadb requête résiduelle | Kitploit
Outils/GitHubGitHub/abraxas/phpmyadmin-pmadb-central-sqli
Analyse des VulnérabilitésExploitationExploitation d'Applications WebSécurité WebTests d'IntrusionLabs et Pratique
GitHubabraxas/phpmyadmin-pmadb-central-sqli

phpmyadmin-pmadb-central-sqli

phpMyAdmin 5.2.3 - Élevé - À distance - SQLi - colonnes centrales pmadb requête résiduelle

Voir le dépôt
il y a 3 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Abraxas Labs - phpmyadmin-pmadb-central-sqli

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

phpmyadmin-pmadb-central-sqli

Classe : SQLi Portée : Distante

phpMyAdmin 5.2.3 (tag RELEASE_5_2_3, commit 962857e). Les colonnes centrales écrivent col_extra en concaténant les POST extra et attribute dans un littéral SQL entre guillemets simples sur la liaison de l'utilisateur de contrôle. Les champs voisins passent par escapeString. Ces deux-là non.

Un utilisateur connecté envoie en POST index.php?route=/database/central-columns avec multi_edit_central_column_save=1 et un guillemet dans field_attribute (ou col_extra). getInsertQuery / updateOneColumn exécutent alors cette chaîne en tant qu'utilisateur de contrôle pma contre pma__central_columns. Ce compte est l'utilisateur de stockage de configuration, pas la boîte SQL connectée.

CVE-2016-5703 concernait le nom de la base de données dans les colonnes centrales. Ces champs extra et attribute n'étaient pas ce bug.

IDpas encore de CVE
ClasseSQLi (utilisateur de contrôle sur pma__central_columns)
PortéeDistante (connexion authentifiée par cookie ; colonnes centrales pmadb activées)
CWECWE-89
CVSSÉlevé : 8.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
ProduitphpMyAdmin
Affecté5.2.3 tag RELEASE_5_2_3 (962857e)
AuthConnexion authentifiée par cookie. Colonnes centrales pmadb activées.
LicenceGNU Affero GPL v3.0
Lab127.0.0.1:19210 uniquement

Ce qu'un attaquant peut faire

Un utilisateur phpMyAdmin connecté qui peut ouvrir les colonnes centrales peut injecter du SQL en tant qu'utilisateur de contrôle sur pma__central_columns.

PrivilègeMéthode / cheminProuvé en lab ou déduit
Casser la chaîne INSERT/UPDATE de l'utilisateur de contrôle (intégrité du SQL pmadb)POST index.php?route=/database/central-columns multi_edit_central_column_save=1 avec un guillemet dans field_attribute / col_extraProuvé en lab. Erreur JSON #1064. Témoin PMA-PMADB-CENTRAL-SQLI-WITNESS dans l'erreur de l'utilisateur de contrôle
Garder les champs voisins in-bandMême POST, guillemet dans field_nameProuvé en lab. Ligne stockée comme neg'col. escapeString a tenu
Lire ou écraser les lignes de colonnes centrales d'autres utilisateursMême sink, une fois la chaîne ferméeDéduit. Le lab s'arrête à l'erreur de syntaxe ; pas de requête empilée
Requêtes supplémentaires en tant qu'utilisateur de contrôleMême sink si la liaison mysqli de contrôle autorise les multi-requêtesDéduit. Par défaut mysqli::query est mono-requête. Non activé ici
Atteindre d'autres tables pmadb (bookmarks, history, pma__userconfig)Uniquement si des requêtes empilées ou une écriture de type INTO sont possiblesDéduit. L'utilisateur de contrôle dans ce lab n'a que du DML sur phpmyadmin.*

Fermé sur ce lab : accès non authentifié, la boîte SQL appuser connectée (appdb uniquement), shell OS, et requêtes empilées. La fonctionnalité est sans effet si pmadb / colonnes centrales est désactivé (c'est un FAIL, pas ce reliquat).

Comment je l'ai trouvé

Huit recherches parallèles dans le code source de RELEASE_5_2_3. Les champs voisins dans CentralColumns.php sont passés par escapeString. Extra et attribute sont implode dans un littéral entre guillemets simples. CVE-2016-5703 concernait le nom de la base de données, pas ces colonnes.

Fausses pistes : traiter un guillemet dans field_name comme le reliquat (il est stocké comme neg'col ; c'est le négatif) ; s'attendre à ce que le journal général montre le témoin non échappé (l'INSERT meurt avec #1064 avant une écriture réussie) ; traiter pmadb-off comme ce reliquat (la fonctionnalité est sans effet).

Lab

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

ou

cd lab
./run.sh

Loopback uniquement : http://127.0.0.1:19210. Images phpmyadmin:5.2.3 et mysql:8.0. Projet Compose phpmyadmin-pmadb-central-sqli. Témoin 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

Le correctif

escapeString / quoteString(..., CONNECT_CONTROL) sur extra et attribute. Liste blanche auto_increment, UNSIGNED, BINARY, UNSIGNED ZEROFILL, et on update CURRENT_TIMESTAMP. Le quoteString de phpMyAdmin 6.x sur le blob JSON du designer est la forme corrigée pour cette classe de concaténation pmadb.

Références

  • 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
  • Reliquats du même pin : phpmyadmin-webauthn · phpmyadmin-designer-json-sqli · phpmyadmin-setup-validate · phpmyadmin-csrf-sql
  • CWE-89

Licence

GNU Affero GPL v3.0. Voir LICENSE. Lab en loopback uniquement. Aucune garantie.

Télécharger l’outil