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-auth-plugin-unquoted — phpMyAdmin 5.2.3 - Alto - Remoto - SQLi - identificatore del plugin di autenticazione senza virgolette | Kitploit
Strumenti/GitHubGitHub/abraxas/phpmyadmin-auth-plugin-unquoted
Scanner di VulnerabilitàAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebSicurezza WebPenetration TestingSicurezza dei Database
GitHub
abraxas/phpmyadmin-auth-plugin-unquoted

phpmyadmin-auth-plugin-unquoted

phpMyAdmin 5.2.3 - Alto - Remoto - SQLi - identificatore del plugin di autenticazione senza virgolette

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-auth-plugin-unquoted

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

phpmyadmin-auth-plugin-unquoted

Classe: SQLi Portata: Remota

phpMyAdmin 5.2.3 (RELEASE_5_2_3 / 962857e) - phpMyAdmin

La modifica della password è attiva per impostazione predefinita. UserPassword.php copia il POST authentication_plugin in ALTER USER ... IDENTIFIED WITH senza allowlist e senza quoting. Username, host e password nella stessa istruzione passano attraverso escapeString. Su MySQL 8 la clausola WITH viene emessa quando il plugin inviato differisce da quello corrente.

Un utente phpMyAdmin autenticato inietta SQL nel proprio ALTER USER attraverso il modulo di modifica password. SQL aggiuntivo nel campo plugin è SQL, non un nome di plugin.

IDnessuna CVE al momento
ClasseSQLi
PortataRemota (login autenticato con cookie; modifica password attiva)
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 (962857e4f63d42e38f11ff4d63f5e722018add76)
Authlogin autenticato con cookie. $cfg['ShowChgPassword'] predefinito true. Il tipo di autenticazione non è config
LicenzaGNU Affero GPL v3.0
Labsolo 127.0.0.1

Cosa può fare un attaccante

Un utente phpMyAdmin autenticato può iniettare SQL nel proprio ALTER USER attraverso il modulo di modifica password.

PrivilegioMetodo / sinkRecon / integrità / disponibilitàProvato in lab o dedotto
Inviare SQL aggiuntivo in IDENTIFIED WITHPOST index.php?route=/user-password con authentication_pluginIntegrità dell'istruzione costruita da phpMyAdminProvato in lab. Il POST grezzo sha256_password /*PMA-AUTH-PLUGIN-UNQUOTED-WITNESS*/ appare senza quoting nel box SQL
Far interpretare a MySQL l'SQL aggiuntivo come SQLLa stessa istruzione raggiunge mysqldIntegrità della connessione utenteProvato in lab. Il general log ha mantenuto il plugin sha256_password e scartato il commento. 1227 perché questo utente non ha CREATE USER
Clausole aggiuntive o account aggiuntivi se il breakout viene interpretatoStesso sink; le query impilate dipendono dal driverIntegrità di altri accountDedotto. Questo lab non esegue una seconda istruzione né crea un altro account
Stessa concatenazione su aggiungi/modifica utentePrivileges.php IDENTIFIED WITH / MariaDB VIAIntegrità delle istruzioni costruite dal grantorSibling dedotto. Il POST del lab è solo modifica password

Chiuso su questo percorso: uso non autenticato (richiesto login con cookie), config-auth (modifica password nascosta), RCE, cambio plugin senza GRANT che riesce su MySQL 8 (1227 senza CREATE USER). Username, host e password restano escapati. La propria password non necessita di GRANT; ciò che resta è il campo plugin senza quoting, non uno scambio gratuito di plugin.

Stesso pin: WebAuthn CustomServer leftover.

Come l'ho trovato

Ho fissato phpmyadmin/phpmyadmin RELEASE_5_2_3. PMASA-2025-1/2/3 sono già in 5.2.2. La modifica password costruisce ancora:

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

$authPlugin è $_POST['authentication_plugin']. MySQL 5.7.37+ e 8.0 omettono WITH a meno che il plugin non sia cambiato. Invia un nome diverso e la clausola ritorna.

Vicoli ciechi già registrati: trattare MySQL 1227 come fallimento del leftover (è la prova che l'SQL aggiuntivo è stato interpretato); sostenere un cambio plugin senza GRANT su MySQL 8; trattare config-auth come in scope; una reverse shell. Teatro.

Lab

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

Target solo http://127.0.0.1:19260. Immagini phpmyadmin:5.2.3 e mysql:8.0. Progetto Compose phpmyadmin-auth-plugin-unquoted. Lo stack viene smontato dopo l'esecuzione.

Login con cookie come appuser. POST /user-password con authentication_plugin=sha256_password /*PMA-AUTH-PLUGIN-UNQUOTED-WITNESS*/. Box query SQL di PMA: ALTER USER 'appuser'@'%' IDENTIFIED WITH sha256_password /*PMA-AUTH-PLUGIN-UNQUOTED-WITNESS*/ BY '***'. Il general log di MySQL interpreta il commento e memorizza IDENTIFIED WITH 'sha256_password'. Lo username è quotato.

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

La correzione

Allowlist dei nomi dei plugin da SHOW PLUGINS. Non interpolare mai il POST in IDENTIFIED WITH, VIA o plugin=.

Riferimenti

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

Licenza

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

Scarica lo strumento