
승인된 침투 테스트를 위한 대화형 셸, 배치 명령 실행, 파일 다운로드 및 프록시 지원을 갖춘 Joomla JCE(CVE-2026-48907) 자동화 RCE 익스플로잇
승인된 사용만 허용됩니다. 이 프로젝트는 본인이 소유하거나 테스트가 명시적으로 허용된 시스템에 대해서만 실행하십시오. 가능하면 통제된 실험실 환경을 사용하십시오.

JCEzploit은 테스터가 명시적 승인을 받은 환경에서 Joomla Content Editor(JCE) 컴포넌트의 프로필 가져오기 기능을 평가하기 위한 커맨드라인 보안 연구 유틸리티입니다. 통제된 환경에서 보고된 원격 코드 실행 조건을 재현하고 검증해야 하는 전문 침투 테스터, 보안 연구자 및 방어자를 위해 설계되었습니다.
이 프로젝트는 구조화된 커맨드라인 워크플로우, 구성 가능한 프록시 지원, 여러 실행 모드, 진단 출력 및 대화형 세션 인터페이스를 제공합니다. 운영자가 소유하거나 서면 테스트 승인을 받은 대상에 대해서만 사용해야 합니다.
게시 참고: 이 README를 게시하거나 배포하기 전에, 프로젝트의 CVE 식별자, 영향받는 버전 범위, 수정 버전, 공개 상태 및 테스트 매트릭스를 권위 있는 공급업체 또는 취약점 데이터베이스 기록과 대조하여 검증하십시오. 아래 메타데이터는 제공된 프로젝트 정보를 반영한 것이며 독립적인 취약점 확인으로 간주해서는 안 됩니다.
이 소프트웨어는 승인되지 않은 대상을 상대로 사용할 경우 무단 액세스, 데이터 노출, 서비스 중단 또는 시스템 손상을 초래할 수 있습니다. 유지관리자는 제3자 시스템, 공공 인프라 또는 문서화된 허가가 없는 시스템에 대한 테스트를 승인하지 않습니다.
이 프로젝트를 사용함으로써 다음 사항에 동의하게 됩니다:
명시적 서면 승인을 받은 시스템만 테스트합니다.
승인된 범위, 시간 창, 속도 제한 및 참여 규칙을 정의하고 따릅니다.
불필요한 데이터에 대한 액세스, 수정, 유출 또는 보관을 피합니다.
활동이 서비스 중단 위험을 초래하거나 관련 없는 사용자에게 영향을 미칠 경우 즉시 테스트를 중단합니다.
적용 가능한 모든 법률, 규정, 계약 및 조직 정책을 준수합니다.
소프트웨어 사용으로 인한 결과에 대한 책임을 수락합니다.
저자와 기여자는 이 프로젝트를 "있는 그대로" 제공하며, 사용으로 인해 발생하는 오용, 손해, 데이터 손실, 법적 청구 또는 기타 결과에 대해 책임을 지지 않습니다.
다음 세부 정보는 프로젝트와 함께 제공된 것이며, 보안 권고 또는 운영 환경 평가에 사용하기 전에 독립적인 검증이 필요합니다.
| 필드 | 제공된 프로젝트 세부 정보 |
|---|---|
| 취약점 식별자 | CVE-2026-48907 |
| 보고된 문제 | 인증되지 않은 원격 코드 실행 |
| 보고된 영향 버전 | JCE 1.0.0 ~ 2.9.99.4 |
| 보고된 수정 버전 | JCE 2.9.99.5 |
| 제공된 테스트 환경 | Joomla 3.10.11, JCE 2.9.15, Apache 2.4, PHP 7.4 |
| 보고된 심각도 | 치명적(Critical); 잠재적 전체 시스템 손상 |
방어 작업의 경우 먼저 배포된 Joomla 및 JCE 버전을 확인하고, 승인을 받고, 롤백 계획을 수립하며, 가능하면 비파괴적 검증 방법을 우선 사용하십시오.
JCEzploit은 프로젝트 자료에 설명된 대로 다음 기능을 포함합니다:
| 영역 | 기능 |
|---|---|
| 워크플로우 | 자동화된 요청 준비 및 취약점 검증 워크플로우 |
| 세션 인터페이스 | 기록, 자동 완성 및 컬러 출력을 지원하는 대화형 명령 세션 |
| 실행 모드 | 대화형, 단일 명령, 배치, quiet, verbose 및 디버그 중심 모드 |
| 탐지 | 여러 폴백 패턴을 사용한 CSRF 토큰 탐지 |
| 네트워크 제어 | 통제된 요청 검사를 위한 HTTP/HTTPS 프록시 지원 |
| 안정성 | 연결 풀링, 타임아웃 및 오류 처리 |
| 파일 작업 | 승인된 평가 시나리오를 위한 파일 검색 기능 |
| 플랫폼 지원 | Python 3.6 이상을 사용하는 Linux, macOS 및 Windows 환경 |
대화형 인터페이스는 다음과 같은 명령을 지원합니다. 승인된 테스트 환경에서만 비파괴적 명령을 사용하십시오.
$> whoami # Display the execution identity
$> id # Display user and group information
$> pwd # Display the current working directory
$> exit # Close the session
| 요구 사항 | 최소 또는 지원 값 |
|---|---|
| Python | 3.6 이상 |
| 패키지 관리자 | pip |
| 운영 체제 | Linux, macOS 또는 Windows |
| 네트워크 액세스 | 종속성 설치 및 승인된 테스트 대상 연결에만 필요 |
정확한 종속성 집합은 requirements.txt에 정의되어 있습니다. 가상 환경을 사용하여 프로젝트 종속성을 호스트 시스템과 격리하십시오.
git clone https://github.com/CerberusMrXi/JCEzploit-CVE-2026-48907.git
cd JCEzploit-CVE-2026-48907
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
pip install -r requirements.txt
chmod +x jcezploit.py
git clone https://github.com/CerberusMrXi/JCEzploit-CVE-2026-48907.git
Set-Location JCEzploit-CVE-2026-48907
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
pip install -r requirements.txt
PowerShell 실행 정책으로 인해 활성화가 차단된 경우, 보안 제어를 전역적으로 약화시키기보다 조직의 엔드포인트 관리 정책을 참조하십시오. 스크립트는 가상 환경 인터프리터를 통해 직접 호출할 수도 있습니다.
pip install pipenv
pipenv install requests rich
pipenv shell
python jcezploit.py --help
저장소에 유지관리되는 Dockerfile이 포함되어 있다면, 격리된 승인된 실험실 환경에서 빌드하고 실행하십시오:
docker build -t jcezploit .
docker run --rm -it jcezploit --help
민감한 호스트 디렉터리, 프로덕션 자격 증명 또는 제한 없는 호스트 네트워킹을 컨테이너에 마운트하지 마십시오.
항상 대상 범위를 검토하고 내장 도움말을 표시하는 것부터 시작하십시오:
python jcezploit.py --help
제공된 커맨드라인 인터페이스는 아래에 요약되어 있습니다.
usage: jcezploit.py [-h] -u URL [--proxy PROXY] [-v] [-q]
[--cmd CMD] [--interactive] [--batch FILE]
[--no-confirm]
JCEzploit - Joomla JCE security testing utility
options:
-h, --help Show this help message and exit
-u, --url URL Authorized target base URL (required )
--proxy PROXY HTTP proxy, for example http://127.0.0.1:8080
-v, --verbose Enable diagnostic output
-q, --quiet Suppress non-essential output
--cmd CMD Execute one approved test command and exit
--interactive Start an interactive test session
--batch FILE Read approved test commands from a file
--no-confirm Skip the confirmation prompt; use only in automation
다음 예제는 호출 패턴을 보여줍니다. 대상을 명시적으로 승인된 실험실 또는 평가 엔드포인트로 교체하십시오.
# Start an interactive assessment session.
python jcezploit.py --url http://authorized-lab.example --interactive
# Execute a low-impact identity check.
python jcezploit.py --url http://authorized-lab.example --cmd "id"
# Route requests through a local inspection proxy.
python jcezploit.py \
--url http://authorized-lab.example \
--proxy http://127.0.0.1:8080 \
--interactive \
--verbose
사전 승인된 비파괴적 검증 단계만 포함하는 명령 파일을 만드십시오:
# commands.txt
whoami
id
pwd
승인된 대상을 상대로 배치 파일을 실행하십시오:
python jcezploit.py --url http://authorized-lab.example --batch commands.txt
통제된 환경에서 요청 흐름을 문제 해결하거나 평가 보고서용 증거를 수집할 때 --verbose를 사용하십시오. 승인된 자동화 파이프라인에 출력을 통합할 때 --quiet를 사용하십시오. 공유 로그에 비밀, 세션 토큰, 응답 본문 또는 개인 데이터를 저장하지 마십시오.
이 프로젝트는 커맨드라인 구성을 허용합니다. 다음 환경 변수 규칙은 구현이 이를 명시적으로 지원하는 경우 래퍼 또는 로컬 런북에서 사용할 수 있습니다:
TARGET_URL=http://authorized-lab.example
PROXY=http://127.0.0.1:8080
VERBOSE=true
QUIET=false
.env 파일, 자격 증명, 토큰, 대상 인벤토리, 캡처된 응답 또는 평가 결과를 버전 관리에 커밋하지 마십시오. 로컬 구성 파일을 .gitignore에 추가하고 적절한 경우 비밀 관리자를 사용하십시오.
JCEzploit/
├── jcezploit.py # Main command-line program
├── requirements.txt # Runtime dependencies
├── README.md # Project documentation
├── LICENSE # MIT License
├── .gitignore # Ignored local and generated files
├── setup.sh # Optional setup helper
├── sample_commands.txt # Example command file
├── Dockerfile # Container build definition
├── verify.py # Dependency verification helper
└── docs/
├── vulnerability_details.md
├── pentest_guide.md
└── changelog.md
위 트리는 제공된 프로젝트 레이아웃을 반영합니다. 파일이 추가, 제거 또는 이름이 변경될 때마다 업데이트하십시오.
저장소에 유지관리되는 requirements-dev.txt 파일이 제공되는 경우에만 개발 종속성을 설치하십시오:
pip install -r requirements-dev.txt
python -m pytest tests/