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
268 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

Write-up: https://abraxaslabs.tech/research/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 tramite il modulo di modifica password. L'SQL aggiuntivo nel campo plugin è SQL, non un nome di plugin.

IDnessuna CVE al momento
ClasseSQLi
PortataRemota (login autenticato tramite 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 tramite 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 tramite 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 dell'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 aggiunta/modifica utentePrivileges.php IDENTIFIED WITH / MariaDB VIAIntegrità delle istruzioni costruite dal grantorSibling dedotto. Il POST del lab riguarda solo la modifica password

Chiuso su questo percorso: uso non autenticato (richiesto login tramite cookie), auth di tipo config (la modifica password è nascosta), RCE, cambio di plugin senza GRANT che riesce su MySQL 8 (1227 senza CREATE USER). Username, host e password restano escapati. La propria password non richiede 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 via POST un nome diverso e la clausola ritorna.

Vicoli ciechi già registrati: trattare MySQL 1227 come fallimento del leftover (è la prova che SQL aggiuntivo è stato analizzato); sostenere un cambio di 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 rimosso al termine dell'esecuzione.

Login tramite cookie come appuser. POST su /user-password con authentication_plugin=sha256_password /*PMA-AUTH-PLUGIN-UNQUOTED-WITNESS*/. Casella di query SQL di PMA: ALTER USER 'appuser'@'%' IDENTIFIED WITH sha256_password /*PMA-AUTH-PLUGIN-UNQUOTED-WITNESS*/ BY '***'. Il general log di MySQL analizza il commento e memorizza IDENTIFIED WITH 'sha256_password'. Il nome utente è tra virgolette.

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

La correzione

Consenti i nomi dei plugin da SHOW PLUGINS. Non interpolare mai 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 laboratorio su loopback. Nessuna garanzia.

Scarica lo strumento