Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
sqlite-cli-go — SQLite 3.53.4 CLI - Élevé - Local - Injection de commande - go et terminateurs slash puis dot-command | Kitploit
Outils/GitHubGitHub/abraxas/sqlite-cli-go
Analyse des VulnérabilitésExploitationVirtualisation de SécuritéCryptographieTests d'IntrusionLabs et Pratique
GitHubabraxas/sqlite-cli-go

sqlite-cli-go

SQLite 3.53.4 CLI - Élevé - Local - Injection de commande - go et terminateurs slash puis dot-command

Voir le dépôt
10il y a 6 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Abraxas Labs - sqlite-cli-go

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

sqlite-cli-go

Classe : Injection de commande Portée : Locale

SQLite 3.53.4 (b09c88c) l'interface sqlite3 par défaut traite toujours go de SQL Server et / d'Oracle comme des terminateurs d'instruction. line_is_command_terminator réécrit cette ligne en ;. La ligne suivante avec un tampon SQL vide est do_meta_command, donc .shell / .output / .read s'exécutent avec l'UID de l'opérateur.

--safe bloque toujours .shell. Ce contrôle tient. Le sqlite3 par défaut n'active pas --safe. Pas libsqlite3. Oracle est un echo d'une chaîne témoin.

IDpas encore de CVE
ClasseInjection de commande (terminateur CLI go / / puis une dot-commande ultérieure)
PortéeLocale (la victime exécute le sqlite3 par défaut sur du SQL/un script attaquant sans --safe ; UI:R)
CWECWE-78
CVSSÉlevé : 7.8 CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
ProduitSQLite (interface sqlite3)
Affecté3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69) SOURCE_ID 2026-07-24 19:02:57 bf7c7f30031888f4e796e429ab3978879485813aaca6f641c7b33e4e09459bcc
Authla victime fournit un script au sqlite3 par défaut ; pas de --safe
LicenceGNU Affero GPL v3.0
Lab127.0.0.1:18920 uniquement. Témoin SQLITE-CLI-GO-WITNESS.

Ce qu'un attaquant peut faire

Après du SQL non terminé dans un script que l'opérateur fournit à sqlite3 sans --safe, une ligne go ou / puis .shell / .output / .read s'exécutent avec l'UID de l'opérateur.

Un point-virgule termine déjà une instruction. Le reste est du SQL de terminaison qui n'a pas de ;, donc un wrapper qui croyait l'instruction encore ouverte exécute quand même la dot-commande suivante. .shell est system(). L'oracle du lab est un echo d'un témoin. Pas un reverse shell.

Comment je l'ai trouvé

Vingt recherches dans le code source de 3.53.4 après OpenLiteSpeed. Dernière GA, pas le brouillon 3.54.0. Les extras du CLI ne sont pas la bibliothèque par défaut. --safe est le puits documenté pour les scripts non fiables (CVE-2022-46908). Il bloque toujours .shell. Le sqlite3 par défaut ne l'active pas.

src/shell.c.in contient toujours le chemin de compatibilité SQL Server / Oracle. Le trunk ac6ac0c22d (2026-10-08) le désactive sauf si SQLITE_SHELL_LEGACY_COMMAND_TERMINATOR. Ce commit est postérieur à cette GA.

Fausses pistes déjà consignées : traiter un point-virgule comme le même reste ; re-déposer CVE-2022-46908 ; s'attendre à ce que --safe soit par défaut ; qualifier cela de RCE libsqlite3 ; utiliser un reverse shell comme oracle ; épingler 3.54.0 (brouillon).

Lab

cd lab
./run.sh

Compile le sqlite-src-3530400 officiel en sqlite3 Unix par défaut (--disable-readline). Compose sqlite-cli-go. TCP factice sur 127.0.0.1:18920. Le CLI par défaut a traité go et / comme terminateurs puis a exécuté .shell echo SQLITE-CLI-GO-WITNESS. --safe a affiché cannot run .shell in safe mode. Bind loopback.

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

Le correctif

Cesser de traiter go et / comme des terminateurs, ce que fait le trunk ac6ac0c22d sauf avec -DSQLITE_SHELL_LEGACY_COMMAND_TERMINATOR. D'ici là, exécuter les scripts non fiables avec --safe. --safe est le contrôle qui tient toujours.

Références

  • sqlite.org/src tag version-3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69)
  • Zip officiel https://www.sqlite.org/2026/sqlite-src-3530400.zip
  • src/shell.c.in line_is_command_terminator, réécriture de process_input, do_meta_command, .shell system() après failIfSafeMode
  • CVE-2022-46908 --safe
  • sqlite.org/cli.html CLI --safe
  • CWE-78
Télécharger l’outil