Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/abraxas/sqlite-cli-go
Vulnerability AnalysisExploitationSecurity VirtualizationCryptographyPenetration TestingLabs & Practice
GitHubabraxas/sqlite-cli-go

sqlite-cli-go

SQLite 3.53.4 CLI - High - Local - Command injection - go 및 슬래시 종료자와 dot-command

저장소 보기
229일 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Abraxas Labs - sqlite-cli-go

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

분석 문서: https://abraxaslabs.tech/research/sqlite-cli-go

sqlite-cli-go

분류: 명령 주입 도달 범위: 로컬

SQLite 3.53.4(b09c88c)의 기본 sqlite3 CLI는 여전히 SQL Server의 go와 Oracle의 /를 문장 종결자로 취급합니다. line_is_command_terminator가 해당 줄을 ;로 다시 씁니다. SQL 버퍼가 비어 있는 다음 줄은 do_meta_command이므로, .shell / .output / .read가 운영자 UID로 실행됩니다.

--safe는 여전히 .shell을 차단합니다. 이 통제는 유효합니다. 기본 sqlite3는 --safe를 켜지 않습니다. libsqlite3가 아닙니다. Oracle은 증인 문자열의 echo입니다.

ID아직 CVE 없음
분류명령 주입 (CLI go / / 종결자 이후 나중의 점 명령)
도달 범위로컬 (피해자가 --safe 없이 공격자의 SQL/스크립트에 대해 기본 sqlite3를 실행; UI:R)
CWECWE-78
CVSS높음: 7.8 CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
제품SQLite (sqlite3 CLI)
영향 버전3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69) SOURCE_ID 2026-07-24 19:02:57 bf7c7f30031888f4e796e429ab3978879485813aaca6f641c7b33e4e09459bcc
인증피해자가 기본 sqlite3에 스크립트를 입력; --safe 없음
라이선스GNU Affero GPL v3.0
랩127.0.0.1:18920 전용. 증인 SQLITE-CLI-GO-WITNESS.

공격자가 할 수 있는 일

운영자가 --safe 없이 sqlite3에 입력하는 스크립트에서 종결되지 않은 SQL 뒤에 go 또는 / 줄이 오면, 이어서 .shell / .output / .read가 운영자 UID로 실행됩니다.

세미콜론은 이미 문장을 종료합니다. 남는 것은 ;가 없는 종결 SQL이며, 문장이 여전히 열려 있다고 판단한 래퍼가 다음 점 명령을 계속 실행하게 됩니다. .shell은 system()입니다. 랩 오라클은 증인의 echo입니다. 리버스 셸이 아닙니다.

발견 경위

OpenLiteSpeed 이후 3.53.4를 대상으로 스무 차례 소스 탐색을 진행했습니다. 3.54.0 초안이 아닌 최신 GA입니다. CLI 확장 기능은 기본 라이브러리가 아닙니다. --safe는 신뢰할 수 없는 스크립트에 대한 문서화된 싱크입니다(CVE-2022-46908). 여전히 .shell을 차단합니다. 기본 sqlite3는 이를 켜지 않습니다.

src/shell.c.in에는 여전히 SQL Server / Oracle 호환 경로가 있습니다. 트렁크 ac6ac0c22d(2026-10-08)는 SQLITE_SHELL_LEGACY_COMMAND_TERMINATOR가 없으면 이를 비활성화합니다. 해당 체크인은 이 GA 이후입니다.

이미 기록된 잘못된 방향: 세미콜론을 동일한 잔여물로 취급한 것; CVE-2022-46908을 다시 제출한 것; --safe가 기본이라고 기대한 것; 이를 libsqlite3 RCE라고 부른 것; 리버스 셸을 오라클로 사용한 것; 3.54.0(초안)을 고정한 것.

랩

cd lab
./run.sh

공식 sqlite-src-3530400을 기본 Unix sqlite3로 빌드합니다(--disable-readline). sqlite-cli-go를 구성합니다. 127.0.0.1:18920에서 더미 TCP를 실행합니다. 기본 CLI는 go와 /를 종료자로 처리한 뒤 .shell echo SQLITE-CLI-GO-WITNESS를 실행했습니다. --safe는 cannot run .shell in safe mode를 출력했습니다. 루프백에 바인딩합니다.

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

수정

go와 /를 종료자로 취급하는 것을 중단하십시오. trunk ac6ac0c22d가 -DSQLITE_SHELL_LEGACY_COMMAND_TERMINATOR 없이 수행하는 작업이 바로 이것입니다. 그때까지는 신뢰할 수 없는 스크립트를 --safe로 실행하십시오. --safe는 여전히 유효한 통제 수단입니다.

참고 자료

  • sqlite.org/src 태그 version-3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69)
  • 공식 zip https://www.sqlite.org/2026/sqlite-src-3530400.zip
  • src/shell.c.in line_is_command_terminator, process_input 재작성, do_meta_command, failIfSafeMode 이후의 .shell system()
  • CVE-2022-46908 --safe
  • sqlite.org/cli.html CLI --safe
  • CWE-78
도구 다운로드