
승인된 침투 테스트를 위한 대화형 셸, 배치 명령 실행, 파일 다운로드 및 프록시 지원을 갖춘 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/
풀 리퀘스트를 열기 전에 변경 사항이 문서화되었는지, 테스트가 통과하는지, 오류 처리가 명확한지, 커밋에 대상 데이터나 비밀이 포함되지 않았는지 확인하십시오. 파싱, 입력 검증, 프록시 처리, 타임아웃 동작 및 안전한 실패 경로에 대한 회귀 테스트를 추가하십시오.
전문적인 평가는 가능하면 전용 테스트 환경을 사용해야 합니다. 검증 전에 백업 또는 스냅샷을 만들고, 비상 중지 절차를 정의하고, 애플리케이션 및 호스트 상태를 모니터링하며, 테스트 기간 내내 시스템 소유자와 협력하십시오.
이 도구는 지속성 확보, 추가 악성코드 배포, 모니터링 회피, 관련 없는 계정 접근, 민감한 파일 덤프 또는 수평 이동에 사용되어서는 안 됩니다. 증거 수집은 발견 사항을 입증하는 데 필요한 범위로 제한되어야 하며 고객의 데이터 처리 요구 사항을 따라야 합니다.
테스트 중 이전에 알려지지 않은 문제가 발견되면 익스플로잇 세부 정보를 즉시 공개하지 마십시오. 영향받는 공급업체나 프로젝트에 비공개로 알리고, 재현 가능한 방어적 증거를 제공하고, 수정을 위한 합리적인 시간을 허용한 후 공개 여부를 조율하십시오. 프로젝트의 공식 보안 신고 지침은 Joomla Security Centre에서 확인하십시오.
책임감 있고 방어적인 연구를 지지하는 보안 전문가와 개발자의 기여를 환영합니다. 중요한 변경 전에 범위와 안전 기대치를 논의할 수 있도록 먼저 이슈를 열어 주십시오.
일반적인 기여 워크플로우는 다음과 같습니다:
git checkout -b feature/documentation-improvement
# Make and test your changes
git add .
git commit -m "Improve documentation"
git push origin feature/documentation-improvement
풀 리퀘스트는 해결하려는 문제를 설명하고, 변경 사항을 기술하고, 테스트 범위를 명시하고, 호환성 또는 안전 영향이 있다면 문서화해야 합니다. Python 코드는 PEP 8을 따르고, 명확한 오류 메시지를 선호하며, 비밀을 포함하지 말고, 프로젝트의 윤리적 사용 보호 장치를 유지하십시오.
최초 프로젝트 릴리스.
보고된 JCE 보안 테스트 워크플로우 추가.
대화형 세션 지원 추가.
승인된 테스트를 위한 파일 검색 기능 추가.
배치 명령 처리 추가.
프록시 지원 추가.
풍부한 커맨드라인 출력 추가.
크로스 플랫폼 지원 추가.
방어적 검증 범위 확장.
지원되는 Joomla 및 JCE 버전 간 호환성 테스트 개선.
구조화된 평가 보고서 출력 추가.
더 강력한 입력 검증 및 더 안전한 기본 동작 추가.
자동화된 단위 및 통합 테스트 추가.
반복 가능한 연구를 위한 문서화된 실험실 설정 제공.
이 프로젝트는 MIT 라이선스에 따라 배포됩니다. 전체 라이선스 전문은 LICENSE를 참조하십시오.
MIT License
Copyright (c) 2024 Sudeepa Wanigarathna
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Sudeepa Wanigarathna
보안 연구원 및 침투 테스터
이 프로젝트를 책임감 있고 합법적으로, 명시적 승인 하에서만 사용하십시오.