Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
sqlite-cli-recover — SQLite 3.53.4 CLI - Hoch - Lokal - Command Injection - recover dump gibt feindseliges Schema als Dot-Command aus | Kitploit
Tools/GitHubGitHub/abraxas/sqlite-cli-recover
SchwachstellenanalyseExploitationPenetrationstestsCommand and ControlPapers & ForschungDatenbanksicherheitLabs & Praxis
GitHubabraxas/sqlite-cli-recover

sqlite-cli-recover

SQLite 3.53.4 CLI - Hoch - Lokal - Command Injection - recover dump gibt feindseliges Schema als Dot-Command aus

Repository anzeigen
8vor 6 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Abraxas Labs - sqlite-cli-recover

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

sqlite-cli-recover

Klasse: Command Injection Reichweite: Lokal

Die SQLite 3.53.4 (b09c88c) CLI .recover gibt feindliches sqlite_schema.sql als späteren Dot-Befehl aus. recoverOneStmt bereitet nur die erste Anweisung vor. Ein eingeschleustes CREATE TABLE plus Zeilenumbruch .shell wird dennoch geschrieben. Die dokumentierte Restore-Pipe führt es als Operator-UID aus.

.dump printSchemaLine ist dieselbe Emit-Klasse. Nicht libsqlite3. Nicht --safe. Orakel ist echo eines Witness-Strings.

IDnoch keine CVE
KlasseCommand Injection (CLI .recover / .dump Schema-Emit)
ReichweiteLokal (Opfer führt die dokumentierte Recover-Pipe aus; 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
ProduktSQLite (sqlite3 CLI)
Betroffen3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69) SOURCE_ID 2026-07-24 19:02:57 bf7c7f30031888f4e796e429ab3978879485813aaca6f641c7b33e4e09459bcc
AuthOpfer führt sqlite3 hostile.db .recover | sqlite3 restored.db aus
LizenzGNU Affero GPL v3.0
Labnur 127.0.0.1:18930. Witness SQLITE-CLI-RECOVER-WITNESS.

Was ein Angreifer tun kann

Ein gültiges erstes CREATE plus ein späteres .shell in sqlite_schema.sql einschleusen. Ein Opfer, das diese DB in ein zweites sqlite3 recovert, führt den Dot-Befehl als seine UID aus.

Die Einschleusung ist eine .db-Datei. Die Opferaktion ist die dokumentierte Recover-Pipe, keine eingefügte go-Zeile und kein versehentlich deaktiviertes --safe. .shell ist system(). Das Lab-Orakel ist echo eines Witness. Keine Reverse Shell.

Wie ich es gefunden habe

Zwanzig Source-Hunts von 3.53.4. Recover's eigener Hunt nannte recoverOneStmt ein Prepare nur für die erste Anweisung und ging weiter. Der Rest ist der Print-Pfad: recoverSqlCb gibt den zusätzlichen Text dennoch aus. Dieses Skript zu pipen ist die Art, wie sqlite.org Ihnen sagt, dass Sie wiederherstellen sollen.

Bereits dokumentierte Irrwege: das First-Statement-Prepare als Strip zu behandeln; 3.54.0 (Entwurf) festzunageln; CVE-2022-46908 --safe erneut einzureichen; dies als libsqlite3-RCE zu bezeichnen; eine Reverse Shell als Orakel zu verwenden.

Lab

cd lab
./run.sh

Baut sqlite-src-3530400 zu sqlite3 mit Standard-Unix-CLI-Recover (OPT_SHELL / SQLITE_ENABLE_DBPAGE_VTAB). writable_schema nach .dbconfig defensive off. Eingeschleustes CREATE TABLE t(x); plus Zeilenumbruch .shell echo SQLITE-CLI-RECOVER-WITNESS. .recover gab .shell aus. In ein zweites sqlite3 gepipet, wurde es ausgeführt. Bind Loopback.

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

Der Fix

Geben Sie kein Schema-SQL aus, das keine einzelne Anweisung ist. Teilen Sie beim ersten Prepare, geben Sie nur diese Anweisung aus, oder verweigern Sie die Zeile. Quoten Sie gewöhnliches CREATE so, wie der Virtual-Table-Dump bereits %q verwendet. Behandeln Sie eine spätere .-Zeile als feindlich und verwerfen Sie sie. --safe auf dem Restore-sqlite3 blockiert .shell; es ist in der dokumentierten Pipe nicht aktiv.

Referenzen

  • sqlite.org/src Tag version-3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69)
  • Recovering Data From A Corrupt SQLite Database - dokumentiertes .recover dann Restore
  • ext/recover/sqlite3recover.c recoverOneStmt / recoverWriteSchema1
  • src/shell.c.in recoverSqlCb, .dump printSchemaLine
Tool herunterladen