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-recover — SQLite 3.53.4 CLI - Alta - Locale - Command injection - recover dump emette uno schema ostile come comando dot | Kitploit
Strumenti/GitHubGitHub/abraxas/sqlite-cli-recover
Analisi delle VulnerabilitàExploitPenetration TestingCommand and ControlPaper e RicercaSicurezza dei DatabaseLab e Pratica
GitHubabraxas/sqlite-cli-recover

sqlite-cli-recover

SQLite 3.53.4 CLI - Alta - Locale - Command injection - recover dump emette uno schema ostile come comando dot

Vedi Repository
86 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-recover

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

sqlite-cli-recover

Classe: Command injection Portata: Locale

La CLI di SQLite 3.53.4 (b09c88c) .recover stampa un sqlite_schema.sql ostile come successivo dot-command. recoverOneStmt prepara solo la prima istruzione. Un CREATE TABLE impiantato più un .shell su nuova riga viene comunque scritto. La pipe di ripristino documentata lo esegue con l'UID dell'operatore.

.dump printSchemaLine è la stessa classe di emissione. Non libsqlite3. Non --safe. L'oracolo è echo di una stringa testimone.

IDnessuna CVE al momento
ClasseCommand injection (CLI .recover / .dump schema emit)
PortataLocale (la vittima esegue la pipe di recover documentata; 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)
Affetto3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69) SOURCE_ID 2026-07-24 19:02:57 bf7c7f30031888f4e796e429ab3978879485813aaca6f641c7b33e4e09459bcc
Authla vittima esegue sqlite3 hostile.db .recover | sqlite3 restored.db
LicenzaGNU Affero GPL v3.0
Labsolo 127.0.0.1:18930. Testimone SQLITE-CLI-RECOVER-WITNESS.

Cosa può fare un attaccante

Impianta un primo CREATE valido più un successivo .shell in sqlite_schema.sql. Una vittima che recupera quel db in un secondo sqlite3 esegue il dot-command con il proprio UID.

L'impianto è un file .db. L'azione della vittima è la pipe di recover documentata, non una riga go incollata e non --safe disattivato per errore. .shell è system(). L'oracolo del lab è echo di un testimone. Non una reverse shell.

Come l'ho trovato

Venti ricerche nel sorgente della 3.53.4. La ricerca di recover stessa ha definito recoverOneStmt un prepare solo-prima-istruzione e si è fermata lì. Il residuo è il percorso di stampa: recoverSqlCb emette comunque il testo extra. Fare il pipe di quello script è il modo in cui sqlite.org ti dice di ripristinare.

Vicoli ciechi già registrati: trattare il prepare della prima istruzione come una rimozione; fissare la 3.54.0 (bozza); riproporre CVE-2022-46908 --safe; chiamare questa RCE di libsqlite3; usare una reverse shell come oracolo.

Lab

cd lab
./run.sh

Compila sqlite-src-3530400 in sqlite3 con il recover CLI Unix predefinito (OPT_SHELL / SQLITE_ENABLE_DBPAGE_VTAB). writable_schema dopo .dbconfig defensive off. Impiantato CREATE TABLE t(x); più .shell echo SQLITE-CLI-RECOVER-WITNESS su nuova riga. .recover ha stampato .shell. In pipe verso un secondo sqlite3, è stato eseguito. Bind su loopback.

SUCCESS sqlite-cli-recover how=recover-pipe-dot-shell recover-has-shell=yes restore-echo=yes SQLITE-CLI-RECOVER-WITNESS

La correzione

Non stampare SQL di schema che non sia una singola istruzione. Dividi al primo prepare, emetti solo quell'istruzione, oppure rifiuta la riga. Quota il CREATE ordinario nel modo in cui il dump delle virtual-table usa già %q. Tratta una successiva riga . come ostile e scartala. --safe sul sqlite3 di ripristino blocca .shell; non è attivo nella pipe documentata.

Riferimenti

  • sqlite.org/src tag version-3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69)
  • Recovering Data From A Corrupt SQLite Database - .recover documentato poi ripristino
  • ext/recover/sqlite3recover.c recoverOneStmt / recoverWriteSchema1
  • src/shell.c.in recoverSqlCb, .dump printSchemaLine
Scarica lo strumento