Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
phpmyadmin-pmadb-central-sqli — phpMyAdmin 5.2.3 - Alta - Remota - SQLi - query residua delle colonne centrali di pmadb | Kitploit
Strumenti/GitHubGitHub/abraxas/phpmyadmin-pmadb-central-sqli
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebSicurezza WebPenetration TestingLab e Pratica
GitHubabraxas/phpmyadmin-pmadb-central-sqli

phpmyadmin-pmadb-central-sqli

phpMyAdmin 5.2.3 - Alta - Remota - SQLi - query residua delle colonne centrali di pmadb

Vedi Repository
4 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

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 Portata: Remota

phpMyAdmin 5.2.3 (tag RELEASE_5_2_3, commit 962857e). Le colonne centrali scrivono col_extra concatenando i POST extra e attribute in un letterale SQL tra apici singoli sul link dell'utente di controllo. I campi adiacenti passano attraverso escapeString. Questi due no.

Un utente autenticato invia in POST index.php?route=/database/central-columns con multi_edit_central_column_save=1 e un apice in field_attribute (o col_extra). getInsertQuery / updateOneColumn eseguono quindi quella stringa come utente di controllo pma contro pma__central_columns. Quell'account è l'utente di archiviazione della configurazione, non la casella SQL con cui si è effettuato l'accesso.

CVE-2016-5703 riguardava il nome del database nelle colonne centrali. Questi campi extra e attribute non erano quel bug.

IDnessuna CVE al momento
ClasseSQLi (utente di controllo su pma__central_columns)
PortataRemota (login autenticato tramite cookie; colonne centrali pmadb abilitate)
CWECWE-89
CVSSAlto: 8.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
ProdottophpMyAdmin
Affetto5.2.3 tag RELEASE_5_2_3 (962857e)
AuthLogin autenticato tramite cookie. Colonne centrali pmadb abilitate.
LicenzaGNU Affero GPL v3.0
Labsolo 127.0.0.1:19210

Cosa può fare un attaccante

Un utente phpMyAdmin autenticato che può aprire le Colonne centrali può iniettare SQL come utente di controllo su pma__central_columns.

PrivilegioMetodo / percorsoProvato in lab o dedotto
Rompere la stringa INSERT/UPDATE dell'utente di controllo (integrità dell'SQL pmadb)POST index.php?route=/database/central-columns multi_edit_central_column_save=1 con un apice in field_attribute / col_extraProvato in lab. Errore JSON #1064. Witness PMA-PMADB-CENTRAL-SQLI-WITNESS nell'errore dell'utente di controllo
Mantenere i campi adiacenti in-bandStesso POST, apice in field_nameProvato in lab. Riga memorizzata come neg'col. escapeString ha tenuto
Leggere o sovrascrivere le righe delle colonne centrali di altri utentiStesso sink, una volta chiusa la stringaDedotto. Il lab si ferma all'errore di sintassi; nessuna query impilata
Istruzioni aggiuntive come utente di controlloStesso sink se il link mysqli di controllo consente multi-queryDedotto. mysqli::query predefinito è a istruzione singola. Non abilitato qui
Raggiungere altre tabelle pmadb (bookmark, history, pma__userconfig)Solo se sono possibili query impilate o una scrittura in stile INTODedotto. L'utente di controllo in questo lab ha solo DML su phpmyadmin.*

Chiusi su questo lab: accesso non autenticato, la casella SQL dell'appuser autenticato (solo appdb), shell del sistema operativo e query impilate. La funzionalità è no-op se pmadb / colonne centrali è disattivato (questo è un FAIL, non questo residuo).

Come l'ho trovato

Otto ricerche parallele nel sorgente di RELEASE_5_2_3. I campi adiacenti in CentralColumns.php sono passati a escapeString. Extra e attribute sono implode in un letterale tra apici singoli. CVE-2016-5703 riguardava il nome del database, non queste colonne.

Vicoli ciechi: trattare un apice in field_name come il residuo (viene memorizzato come neg'col; questo è il negativo); aspettarsi che il general log mostrasse il witness non escapato (l'INSERT muore con #1064 prima di una scrittura riuscita); trattare pmadb-off come questo residuo (la funzionalità è no-op).

Lab

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

oppure

cd lab
./run.sh

Solo loopback: http://127.0.0.1:19210. Immagini phpmyadmin:5.2.3 e mysql:8.0. Progetto Compose 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

La correzione

escapeString / quoteString(..., CONNECT_CONTROL) su extra e attribute. Allowlist auto_increment, UNSIGNED, BINARY, UNSIGNED ZEROFILL e on update CURRENT_TIMESTAMP. quoteString di phpMyAdmin 6.x sul blob JSON del designer è la forma corretta per questa classe di concatenazione pmadb.

Riferimenti

  • 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
  • Altri residui dello stesso pin: phpmyadmin-webauthn · phpmyadmin-designer-json-sqli · phpmyadmin-setup-validate · phpmyadmin-csrf-sql
  • CWE-89

Licenza

GNU Affero GPL v3.0. Vedi LICENSE. Solo lab in loopback. Nessuna garanzia.

Scarica lo strumento