Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
sqlite-cli-recover — SQLite 3.53.4 CLI — High — Локальная — Инъекция команд — recover dump выводит враждебную схему как dot-команду | Kitploit
Инструменты/GitHubGitHub/abraxas/sqlite-cli-recover
Анализ уязвимостейЭксплуатацияТестирование на ПроникновениеКомандование и УправлениеСтатьи и ИсследованияБезопасность Баз ДанныхЛаборатории и Практика
GitHubabraxas/sqlite-cli-recover

sqlite-cli-recover

SQLite 3.53.4 CLI — High — Локальная — Инъекция команд — recover dump выводит враждебную схему как dot-команду

Репозиторий
86 дней назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Abraxas Labs - sqlite-cli-recover

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

sqlite-cli-recover

Класс: Внедрение команд Достижимость: Локальная

CLI SQLite 3.53.4 (b09c88c) .recover выводит враждебный sqlite_schema.sql как последующую dot-команду. recoverOneStmt подготавливает только первый оператор. Подсаженный CREATE TABLE плюс перевод строки .shell всё равно записывается. Документированный конвейер восстановления выполняет его от имени UID оператора.

.dump printSchemaLine — тот же класс вывода. Не libsqlite3. Не --safe. Оракул — echo строки-свидетеля.

IDCVE пока нет
КлассВнедрение команд (вывод схемы CLI .recover / .dump)
ДостижимостьЛокальная (жертва запускает документированный конвейер восстановления; 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
ПродуктSQLite (CLI sqlite3)
Затронуто3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69) SOURCE_ID 2026-07-24 19:02:57 bf7c7f30031888f4e796e429ab3978879485813aaca6f641c7b33e4e09459bcc
Аутентификацияжертва запускает sqlite3 hostile.db .recover | sqlite3 restored.db
ЛицензияGNU Affero GPL v3.0
Лабораториятолько 127.0.0.1:18930. Свидетель SQLITE-CLI-RECOVER-WITNESS.

Что может сделать атакующий

Подсадить валидный первый CREATE плюс последующий .shell в sqlite_schema.sql. Жертва, восстанавливающая эту БД во второй sqlite3, выполняет dot-команду от своего UID.

Подсадка — это файл .db. Действие жертвы — документированный конвейер восстановления, а не вставленная строка go и не случайно отключённый --safe. .shell — это system(). Оракул лаборатории — echo свидетеля. Не reverse shell.

Как я это нашёл

Двадцать поисков по исходникам 3.53.4. Собственный поиск в recover назвал recoverOneStmt подготовкой только первого оператора и на этом остановился. Остаток — это путь вывода: recoverSqlCb всё равно выводит лишний текст. Передача этого скрипта по конвейеру — это то, как sqlite.org советует восстанавливать.

Уже зафиксированные ошибочные пути: трактовка подготовки первого оператора как удаления; привязка к 3.54.0 (черновик); повторная подача CVE-2022-46908 --safe; называние этого RCE в libsqlite3; использование reverse shell в качестве оракула.

Лаборатория

cd lab
./run.sh

Собирает sqlite-src-3530400 в sqlite3 со стандартным Unix CLI recover (OPT_SHELL / SQLITE_ENABLE_DBPAGE_VTAB). writable_schema после .dbconfig defensive off. Подсаженный CREATE TABLE t(x); плюс перевод строки .shell echo SQLITE-CLI-RECOVER-WITNESS. .recover вывел .shell. Переданный по конвейеру во второй sqlite3, он выполнился. Привязка к loopback.

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

Исправление

Не выводить SQL схемы, который не является одним оператором. Разделять по первой подготовке, выводить только этот оператор или отклонять строку. Экранировать обычный CREATE так, как это уже делает дамп виртуальных таблиц через %q. Считать последующую строку . враждебной и отбрасывать её. --safe на восстанавливающем sqlite3 блокирует .shell; он не включён в документированном конвейере.

Ссылки

  • sqlite.org/src тег version-3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69)
  • Recovering Data From A Corrupt SQLite Database — документированные .recover и последующее восстановление
  • ext/recover/sqlite3recover.c recoverOneStmt / recoverWriteSchema1
  • src/shell.c.in recoverSqlCb, .dump printSchemaLine
Скачать инструмент