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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-66493 — Joomla 확장 프로그램 PhocaCommander는 삭제, 복사, 이동 작업에서 경로 탐색(Path Traversal) 취약점에 노출되어 있습니다 - CVSS 6.4 | Kitploit
도구/GitHubGitHub/toanln-cov/cve-2026-66493
Vulnerability AnalysisExploitationWeb Application ExploitationData ExfiltrationWeb SecurityPenetration Testing
GitHubtoanln-cov/cve-2026-66493

CVE-2026-66493

Joomla 확장 프로그램 PhocaCommander는 삭제, 복사, 이동 작업에서 경로 탐색(Path Traversal) 취약점에 노출되어 있습니다 - CVSS 6.4

저장소 보기
151개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

파일 작업의 경로 탐색 (삭제 / 복사 / 이동)

PhocaCommander ≤ 6.1.3 — 인증된 관리자가 웹 루트 외부 파일을 조작할 수 있음

CVE CVSS v4.0 CWE-22 Affected Researcher


요약

PhocaCommander의 파일 작업 핸들러는 공격자가 제어하는 base64 인코딩 매개변수(pathfrom, pathwhere)를 사용하여 소스 및 대상 경로를 구성하지만, 경로 포함 검증을 전혀 수행하지 않습니다. 인증된 관리자는 웹 서버 프로세스가 접근할 수 있는 파일 시스템 어디에서나 파일을 삭제, 복사, 이동할 수 있습니다.

실험실에서 확인된 내용: 웹 루트 외부의 /tmp/에 있는 파일을 삭제하고, /etc/passwd를 PhocaCommander 파일 관리자로 복사하여 내장 편집기로 내용을 읽을 수 있었습니다. 세 가지 작업(삭제, 복사, 이동) 모두 동일한 검증되지 않은 코드 경로를 사용합니다.


영향을 받는 버전

구성 요소취약한 버전테스트 환경수정된 버전
PhocaCommander1.0.0 – 6.1.3Joomla 5.4.7 + PhocaCommander 6.1.3 (PHP 8.2 / Apache)6.1.4

취약점 세부 정보

요구되는 인증: 관리자 (세션 + CSRF 토큰)

파일: administrator/components/com_phocacommander/views/phocacommanderactiona/view.json.php

근본 원인

작업 뷰는 pathfrom과 pathwhere를 base64에서 디코딩한 뒤, 포함 검사 없이 JPATH_ROOT에 직접 연결합니다. 이후 이 검증되지 않은 경로들은 세 가지 파일 작업 모두에서 사용됩니다.

VIEW.JSON.PHP — 취약한 경로 구성

root@kitploit:~
// Both parameters decoded from base64 — no containment check
$pathFrom  = JPATH_ROOT . '/' . base64_decode($this->t['pathfrom'])  . '/';
$pathWhere = JPATH_ROOT . '/' . base64_decode($this->t['pathwhere']) . '/';

// Delete — removes any file reachable by www-data
$srcValue = $pathFrom . $v;
if (PhocaCommanderHelper::fileExists($srcValue)) {
    File::delete($srcValue);
}

// Copy / Move — arbitrary cross-directory file operations
File::copy($pathFrom . $v, $pathWhere . $v);
File::move($pathFrom . $v, $pathWhere . $v);

PhocaCommanderHelper::fileExists()는 is_file(Path::clean($file))을 사용합니다. Path::clean()은 슬래시를 정규화하지만 ../ 시퀀스를 제거하지 않으므로, 두 매개변수 중 하나에 포함된 탐색 시퀀스는 검증 없이 임의의 파일 시스템 경로로 해석됩니다.


개념 증명

시나리오 1 — 웹 루트 외부의 파일 삭제

1. /tmp/poc.txt에 canary 파일이 존재하는지 확인

웹 루트 외부의 /tmp/poc.txt에 www-data 소유의 테스트 파일을 생성하여, 삭제 작업 전에 대상이 존재함을 확인합니다.

ls -la /tmp에서 poc.txt를 보여줌

2. Joomla 관리자 패널에 로그인하고 CSRF 토큰 얻기

관리자 로그인 페이지를 통해 인증합니다. Joomla 폼 토큰을 가져옵니다 — 이 토큰은 모든 관리자 페이지에서 숨겨진 입력 필드로 나타납니다.

Burp Suite – 응답에서 CSRF 토큰이 강조된 GET 요청

3. 웹 루트 외부의 대상 파일에 대한 삭제 요청 보내기

디코딩된 매개변수:

  • pathfrom=Li4vLi4vLi4vdG1w → ../../..tmp → /tmp/
  • selfiles[0]=file|cG9jLnR4dA== → 파일 이름 poc.txt

요청 / 응답

Burp Suite – POST 삭제 요청 및 "File deleted" 응답

4. /tmp에서 파일이 삭제되었는지 확인

ls -la /tmp가 poc.txt가 사라진 것을 보여줌


시나리오 2 — /etc/passwd를 파일 관리자로 복사 (복사를 통한 임의 파일 읽기)

1. 로그인 및 CSRF 토큰 얻기 (시나리오 1, 2단계와 동일)

시나리오 1의 관리자 세션을 재사용하거나 다시 인증하여 새 CSRF 토큰을 얻습니다.

2. /etc/passwd를 웹 루트 내부의 phoca-files/로 복사

디코딩된 매개변수:

  • pathfrom=Li4vLi4vLi4vLi4vZXRj → ../../../../etc → /etc/
  • pathwhere=cGhvY2EtZmlsZXM= → phoca-files → /var/www/html/phoca-files/
  • selfiles[0]=file|cGFzc3dk → 파일 이름 passwd

요청 / 응답

Burp Suite – POST 복사 요청 및 "File copied" 응답

3. /etc/passwd가 phoca-files/로 복사되었는지 확인

/etc/passwd가 이제 웹 루트 내부의 phoca-files/passwd에 www-data 소유로 존재합니다.

ls -la 및 cat passwd가 phoca-files에 있는 전체 /etc/passwd 내용을 표시

4. PhocaCommander의 내장 편집기에서 복사된 파일 열기

관리자 패널에서 PhocaCommander 파일 관리자로 이동한 뒤 phoca-files/를 열고 passwd 파일을 클릭한 다음 Edit를 클릭하면 내장 CodeMirror 편집기에서 내용을 볼 수 있습니다. 전체 /etc/passwd 내용이 렌더링됩니다:

PhocaCommander 내장 편집기가 /etc/passwd 내용을 표시


영향

  1. 임의 파일 삭제 — 웹 루트 외부에서 www-data가 쓸 수 있는 파일은 애플리케이션 구성 파일, 잠금 파일, 다른 서비스의 cron 작업을 포함하여 영구적으로 제거될 수 있습니다.
  2. 임의 파일 복사 (→ 읽기) — 웹 루트 외부의 시스템 파일 및 구성 파일을 포함한 모든 읽기 가능한 파일을 파일 관리자로 복사하고 내장 편집기로 읽을 수 있습니다. 이는 사실상 OS 수준의 임의 파일 읽기를 달성합니다.
  3. 임의 파일 이동 — 파일을 디렉터리 경계를 넘어 이동시켜 다른 서비스를 방해하거나 2차 공격을 위해 파일 위치를 변경할 수 있습니다.
  4. 데이터 유출 체인 — 민감한 파일(/etc/shadow, 개인 키, 다른 앱의 .env 파일)을 웹 루트 안으로 복사하면 추가 작업 없이 HTTP를 통해 접근할 수 있게 됩니다.

참조

  • CVE: https://www.cve.org/CVERecord?id=CVE-2026-66493
  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-66493
  • 공급업체 저장소: https://github.com/PhocaDesign/PhocaCommander
도구 다운로드