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
sqlite-cli-go — SQLite 3.53.4 CLI - Alta - Locale - Command injection - go e terminatori slash poi dot-command | Kitploit
Strumenti/GitHubGitHub/abraxas/sqlite-cli-go
Analisi delle VulnerabilitàExploitVirtualizzazione per la SicurezzaCrittografiaPenetration TestingLab e Pratica
GitHubabraxas/sqlite-cli-go

sqlite-cli-go

SQLite 3.53.4 CLI - Alta - Locale - Command injection - go e terminatori slash poi dot-command

Vedi Repository
106 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 - sqlite-cli-go

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  sqlite-cli-go

sqlite-cli-go

Classe: Command injection Reach: Locale

SQLite 3.53.4 (b09c88c) la CLI sqlite3 predefinita continua a trattare go di SQL Server e / di Oracle come terminatori di istruzione. line_is_command_terminator riscrive quella riga in ;. La riga successiva con un buffer SQL vuoto è do_meta_command, quindi .shell / .output / .read vengono eseguiti con l'UID dell'operatore.

--safe blocca ancora .shell. Quel controllo regge. La sqlite3 predefinita non attiva --safe. Non è libsqlite3. Oracle è echo di una stringa witness.

IDnessuna CVE al momento
ClasseCommand injection (CLI go / / terminatore seguito da un dot-command successivo)
ReachLocale (la vittima esegue la sqlite3 predefinita su SQL/script dell'attaccante senza --safe; UI:R)
CWECWE-78
CVSSHigh: 7.8 CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
ProdottoSQLite (CLI sqlite3)
Affected3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69) SOURCE_ID 2026-07-24 19:02:57 bf7c7f30031888f4e796e429ab3978879485813aaca6f641c7b33e4e09459bcc
Authla vittima fornisce uno script alla sqlite3 predefinita; nessun --safe
LicenzaGNU Affero GPL v3.0
Labsolo 127.0.0.1:18920. Witness SQLITE-CLI-GO-WITNESS.

Cosa può fare un attaccante

Dopo SQL non terminato in uno script che l'operatore fornisce a sqlite3 senza --safe, una riga go o / e poi .shell / .output / .read vengono eseguiti con l'UID dell'operatore.

Un punto e virgola termina già un'istruzione. Ciò che resta è SQL terminante che non ha ;, quindi un wrapper che pensava che l'istruzione fosse ancora aperta esegue comunque il dot-command successivo. .shell è system(). L'oracolo del lab è echo di una witness. Non una reverse shell.

Come l'ho trovato

Venticinque ricerche nel sorgente della 3.53.4 dopo OpenLiteSpeed. Ultima GA, non la bozza 3.54.0. Le estensioni della CLI non sono la libreria predefinita. --safe è il sink documentato per script non attendibili (CVE-2022-46908). Blocca ancora .shell. La sqlite3 predefinita non lo attiva.

src/shell.c.in ha ancora il percorso di compatibilità SQL Server / Oracle. Il trunk ac6ac0c22d (2026-10-08) lo disabilita a meno che non sia definito SQLITE_SHELL_LEGACY_COMMAND_TERMINATOR. Quel check-in è successivo a questa GA.

Vicoli ciechi già registrati: trattare un punto e virgola come lo stesso residuo; ri-segnalare CVE-2022-46908; aspettarsi che --safe sia predefinito; chiamare questo RCE di libsqlite3; usare una reverse shell come oracolo; fissare la 3.54.0 (bozza).

Lab

cd lab
./run.sh

Compila la sqlite-src-3530400 ufficiale nella sqlite3 Unix predefinita (--disable-readline). Compose sqlite-cli-go. TCP fittizio su 127.0.0.1:18920. La CLI predefinita ha trattato go e / come terminatori e poi ha eseguito .shell echo SQLITE-CLI-GO-WITNESS. --safe ha stampato cannot run .shell in safe mode. Bind su loopback.

SUCCESS sqlite-cli-go how=go-then-dot-shell slash=yes safe=blocked SQLITE-CLI-GO-WITNESS

La correzione

Smettere di trattare go e / come terminatori, che è ciò che fa il trunk ac6ac0c22d a meno che non sia definito -DSQLITE_SHELL_LEGACY_COMMAND_TERMINATOR. Fino ad allora, eseguire script non attendibili con --safe. --safe è il controllo che regge ancora.

Riferimenti

  • sqlite.org/src tag version-3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69)
  • Zip ufficiale https://www.sqlite.org/2026/sqlite-src-3530400.zip
  • src/shell.c.in line_is_command_terminator, riscrittura di process_input, do_meta_command, .shell system() dopo failIfSafeMode
  • CVE-2022-46908 --safe
  • sqlite.org/cli.html CLI --safe
  • CWE-78
Scarica lo strumento