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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
sqlite-rsync-ssh — SQLite 3.53.4 sqlite3_rsync - 높음 - 원격 - RCE - SSH 파일명 명령어 주입 | Kitploit
도구/GitHubGitHub/abraxas/sqlite-rsync-ssh
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingCommand and ControlRed TeamingLabs & Practice
GitHubabraxas/sqlite-rsync-ssh

sqlite-rsync-ssh

SQLite 3.53.4 sqlite3_rsync - 높음 - 원격 - RCE - SSH 파일명 명령어 주입

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Abraxas Labs - sqlite-rsync-ssh

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

sqlite-rsync-ssh

분류: RCE (명령 주입) 도달 범위: 원격 (UI:R)

SQLite 3.53.4 (b09c88c)의 sqlite3_rsync는 로컬 /bin/sh -c를 위해 USER@HOST:PATH를 인용한다. 그러면 OpenSSH는 로그인 셸을 위해 원격 argv를 공백으로 이어 붙이면서 그 인용 부호를 제거한다. PATH 안의 세미콜론, $(), 백틱, 또는 |는 SSH 원격 UID로 실행된다. libsqlite3가 아니라 유틸리티다. Ada Logics의 readPow2 x>16 스택 스매시는 이 핀에서는 닫혀 있다.

ID아직 CVE 없음
분류RCE (SSH 원격 UID로서의 명령 주입)
도달 범위원격 (피해자가 sqlite3_rsync를 실행; UI:R)
CWECWE-78
CVSSHigh: 8.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
제품SQLite sqlite3_rsync 유틸리티
영향받는 버전3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69, SOURCE_ID 2026-07-24 19:02:57 bf7c7f30031888f4e796e429ab3978879485813aaca6f641c7b33e4e09459bcc)
인증피해자가 악의적인 USER@HOST:PATH로 sqlite3_rsync를 실행
라이선스GNU Affero GPL v3.0
랩127.0.0.1:18910 전용. 에코 증거. 리버스 셸 없음.

공격자가 할 수 있는 일

sqlite3_rsync USER@HOST:PATH의 원격 경로에 ;, $(), 백틱, 또는 |를 넣는다. 피해자가 이 유틸리티를 실행해야 한다(UI:R). 추가 명령은 SSH 원격 UID로 실행된다.

append_escaped_arg(..., 1)는 로컬 /bin/sh -c를 위해 작은따옴표로 감싼다. 그 인용 부호는 로컬에서 소비된다. OpenSSH는 남은 argv를 하나의 원격 명령 문자열로 연결한다. 로그인 셸은 그 메타문자를 인용되지 않은 상태로 본다.

이것은 libsqlite3가 아니다. 기본 sqlite3.c는 이 프로토콜을 포함하지 않는다. Ada Logics의 레플리카 스택 스매시(readPow2 지수 상한)는 3.53.4에서 이미 닫혀 있다.

발견 방법

3.53.2 FTS5 / 세션 물결 이후 SQLite 태그 version-3.53.4를 스무 번 소스 헌팅했다. 기본 라이브러리에는 여전히 다른 잔재가 남아 있다(이 팩은 rsync 유틸리티다). tool/sqlite3_rsync.c의 popen2는 /bin/sh -c를 exec한다. hostSeparator는 첫 콜론에서 분리한다. append_escaped_arg의 반환값은 절대 검사되지 않는다.

잘못된 방향: Ada Logics 스택 스매시를 아직 열려 있다고 취급한 것; 리버스 셸을 랩에서 시험한 것; 실제 sshd와 통신한 것; 초안 3.54.0을 핀한 것; 이것을 라이브러리 RCE라고 부른 것.

랩

cd lab
./run.sh

공식 3.53.4 소스 zip에서 sqlite3_rsync를 빌드한다. 가짜 OpenSSH가 dest 뒤에 argv를 이어 붙인다. Origin lab@host:;echo SQLITE-RSYNC-SSH-WITNESS>/work/sandbox/pwned.txt. 원격 명령에 인용되지 않은 ;echo가 있었다. 루프백 바인드.

SUCCESS sqlite-rsync-ssh how=openssh-argv-join dest=lab@host remote-has-semicolon=yes SQLITE-RSYNC-SSH-WITNESS

수정

이 GA 이후 trunk b0db2db(2026-10-07, ANT-2026-31X9HVRR)가 하는 방식대로 피어로 전송되는 파일 이름을 헥스 인코딩한다(isFilename==2 / --encoded-filenames). USER@HOST와 --ssh는 로컬 sh 인용으로 유지한다. 로컬 작은따옴표가 OpenSSH argv 결합에서 살아남는다고 의존하지 마라.

참고 자료

  • https://sqlite.org/src 핀 https://github.com/sqlite/sqlite/tree/version-3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69)
  • https://github.com/sqlite/sqlite/blob/version-3.53.4/tool/sqlite3_rsync.c append_escaped_arg, popen2, 원격 ORIGIN/REPLICA SSH argv
  • https://sqlite.org/rsync.html
  • Trunk 헥스 인코딩 b0db2db / Fossil eaec2f7f (2026-10-07)
도구 다운로드