Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
sqlite-cli-go — SQLite 3.53.4 CLI - Alta - Local - Injeção de comando - terminadores go e barra e depois comando dot | Kitploit
Ferramentas/GitHubGitHub/abraxas/sqlite-cli-go
Análise de VulnerabilidadesExploraçãoVirtualização para SegurançaCriptografiaTestes de PenetraçãoLabs e Prática
GitHubabraxas/sqlite-cli-go

sqlite-cli-go

SQLite 3.53.4 CLI - Alta - Local - Injeção de comando - terminadores go e barra e depois comando dot

Ver Repositório
10há 6 diasAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Abraxas Labs - sqlite-cli-go

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

sqlite-cli-go

Classe: Injeção de comando Alcance: Local

O CLI sqlite3 padrão do SQLite 3.53.4 (b09c88c) ainda trata go do SQL Server e / do Oracle como terminadores de instrução. line_is_command_terminator reescreve essa linha para ;. A linha seguinte com um buffer SQL vazio é do_meta_command, então .shell / .output / .read são executados com o UID do operador.

--safe ainda bloqueia .shell. Esse controle se mantém. O sqlite3 padrão não ativa --safe. Não é libsqlite3. O Oracle é echo de uma string testemunha.

IDainda sem CVE
ClasseInjeção de comando (terminador go / / do CLI e depois um dot-command posterior)
AlcanceLocal (a vítima executa o sqlite3 padrão sobre SQL/script do atacante sem --safe; UI:R)
CWECWE-78
CVSSAlto: 7.8 CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
ProdutoSQLite (CLI sqlite3)
Afetado3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69) SOURCE_ID 2026-07-24 19:02:57 bf7c7f30031888f4e796e429ab3978879485813aaca6f641c7b33e4e09459bcc
Autenticaçãoa vítima fornece um script ao sqlite3 padrão; sem --safe
LicençaGNU Affero GPL v3.0
Labapenas 127.0.0.1:18920. Testemunha SQLITE-CLI-GO-WITNESS.

O que um atacante pode fazer

Após SQL não terminado em um script que o operador fornece ao sqlite3 sem --safe, uma linha go ou / e depois .shell / .output / .read são executados com o UID do operador.

Um ponto e vírgula já encerra uma instrução. O que sobra é SQL de terminação que não tem ;, então um wrapper que pensava que a instrução ainda estava aberta ainda executa o próximo dot-command. .shell é system(). O oráculo do lab é echo de uma testemunha. Não é um reverse shell.

Como eu encontrei

Vinte buscas no código-fonte da 3.53.4 depois do OpenLiteSpeed. Última GA, não o rascunho 3.54.0. Os extras do CLI não são a biblioteca padrão. --safe é o sink documentado para scripts não confiáveis (CVE-2022-46908). Ele ainda bloqueia .shell. O sqlite3 padrão não o ativa.

src/shell.c.in ainda tem o caminho de compatibilidade com SQL Server / Oracle. O trunk ac6ac0c22d (2026-10-08) o desativa a menos que SQLITE_SHELL_LEGACY_COMMAND_TERMINATOR. Esse check-in é posterior a esta GA.

Caminhos errados já registrados: tratar um ponto e vírgula como o mesmo resto; reabrir o CVE-2022-46908; esperar que --safe fosse o padrão; chamar isso de RCE do libsqlite3; usar um reverse shell como oráculo; fixar na 3.54.0 (rascunho).

Lab

cd lab
./run.sh

Compila o sqlite-src-3530400 oficial no sqlite3 Unix padrão (--disable-readline). Compose sqlite-cli-go. TCP dummy em 127.0.0.1:18920. O CLI padrão tratou go e / como terminadores e então executou .shell echo SQLITE-CLI-GO-WITNESS. --safe imprimiu cannot run .shell in safe mode. Bind em loopback.

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

A correção

Pare de tratar go e / como terminadores, que é o que o trunk ac6ac0c22d faz a menos que -DSQLITE_SHELL_LEGACY_COMMAND_TERMINATOR. Até então, execute scripts não confiáveis com --safe. --safe é o controle que ainda se mantém.

Referências

  • sqlite.org/src tag version-3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69)
  • Zip oficial https://www.sqlite.org/2026/sqlite-src-3530400.zip
  • src/shell.c.in line_is_command_terminator, reescrita de process_input, do_meta_command, .shell system() após failIfSafeMode
  • CVE-2022-46908 --safe
  • sqlite.org/cli.html CLI --safe
  • CWE-78
Baixar ferramenta