
cve-2026-48907 scanner
Joomla! JCE Editor < 2.9.99.5 — 인증되지 않은 원격 코드 실행 (CVE-2026-48907) 탐지를 위한 단일 파일 자체 포함 스캐너 작성자: Alma
[!CAUTION]
🚨 면책 조항 — 사용 전 반드시 읽어 주십시오
이 도구는 침투 보안 테스트 도구입니다.
이 도구는 승인된 보안 평가 목적으로만 사용해야 합니다.
귀하가 소유하지 않거나 테스트에 대한 서면 허가를 받지 않은 시스템을 스캔하는 것은 대부분의 국가에서 불법입니다.
저자(Hussein Mohamed masta ghimau)는 이 도구의 사용으로 인해 발생하는 모든 오용, 손해, 법적 조치 또는 데이터 손실에 대해 절대적인 책임을 지지 않습니다.
이 스캐너를 실행함으로써 귀하는 다음에 동의하는 것입니다:
귀하가 소유하거나 명시적인 서면 동의를 받은 자산만 스캔합니다.
침투 정확도 확인의 일환으로 대상 서버에 무해한 POC PHP 파일이 업로드된다는 점을 이해합니다.
테스트 직후 업로드된 모든 POC 파일을 수동으로 삭제합니다.
사용에 따른 모든 위험은 본인이 부담합니다.
[!IMPORTANT] 정확성을 위해 "침투적" 방식이 중요한 이유: 최고 수준의 신뢰성을 확보하고 가양성을 제거하기 위해, 이 도구는 실시간 수학 검증 페이로드 테스트를 수행합니다. 안전한 PHP 개념 증명 라인을 업로드한 후 서버가 반환한 정확한 계산된 수학 결과를 확인하여 원격 코드 실행을 확인합니다. 버전 문자열만 읽는 비침투적 스캐너는 백포트된 패치나 사용자 정의 핫픽스를 놓칠 수 있습니다. 이 도구는 취약점이 실제로 존재하는지 확인합니다. 따라서 설계상 침투적이므로 현명하게 사용하고 완전한 승인을 받으십시오.
masta-cve-2026-48907.py는 완전히 독창적인 단일 파일 파이썬 스캐너로, JCE Editor 구성 요소 버전 2.9.99.5 미만을 실행하는 Joomla! 인스턴스에서 CVE-2026-48907을 탐지하도록 설계되었습니다.
requests/httpx 의존성 없음.py 파일openpyxl이나 rich 없이도 작동하지만, 설치되어 있으면 보기 좋게 동작ThreadPoolExecutor를 통해 전체 URL 목록을 빠르게 스캔.xlsx) 보고서 자동 생성openpyxlrich그 외 모든 것은 Python 표준 라이브러리입니다 (urllib, http.cookiejar, argparse, threading 등).
# 1. 저장소 복제
git clone https://github.com/YOUR_USERNAME/masta-cve-2026-48907.git
cd masta-cve-2026-48907
# 2. (선택 사항이지만 권장) 추가 패키지 설치
pip install -r requirements.txt
스크립트를 아무것도 설치하지 않고 직접 실행할 수도 있습니다 (터미널 출력만, Excel 없음):
python masta-cve-2026-48907.py -u https://target.com
python masta-cve-2026-48907.py -u https://target.com/joomla
python masta-cve-2026-48907.py -l targets.txt -t 10
python masta-cve-2026-48907.py -u https://target.com -p http://127.0.0.1:8080
python masta-cve-2026-48907.py -h
-u URL 단일 대상 URL
-l FILE URL이 포함된 파일 (한 줄에 하나)
-o OUTPUT 사용자 지정 Excel 출력 경로
-t THREADS 동시 스레드 수 (기본값: 5)
-p PROXY 프록시 URL (예: http://127.0.0.1:8080)
--timeout N 요청 타임아웃 (초) (기본값: 12)
--verify-ssl SSL 인증서 확인 활성화 (기본값: 비활성화)
-v, --verbose 스캔 중 대상별 결과 카드 전체 표시
-d, --debug 내부 HTTP 요청 추적 표시
--no-color 색상 터미널 출력 비활성화
다음은 입력부터 최종 보고서까지의 전체 스캔 로직입니다.
flowchart TD
A[사용자가 -u URL 또는 -l FILE 제공] --> B[대상 정규화 및 중복 제거]
B --> C[ThreadPoolExecutor 실행]
C --> D[각 대상에 대해]
D --> E1[probe_joomla<br/>GET /, meta, manifest,<br/>static assets, README]
E1 --> F1{Joomla! 감지됨?}
F1 -- 아니오 --> R1[상태: NOT_JOOMLA]
F1 -- 예 --> E2[probe_jce<br/>GET jce.xml, endpoints,<br/>JCE 특정 마커]
E2 --> F2{JCE 감지됨?}
F2 -- 아니오 --> R2[상태: SAFE<br/>JCE가 설치되지 않음]
F2 -- 예 --> F3{버전 >= 2.9.99.5?}
F3 -- 예 --> R3[상태: PATCHED]
F3 -- 아니오 --> E3[extract_csrf<br/>Joomla! CSRF 토큰 파싱]
E3 --> F4{토큰 발견?}
F4 -- 아니오 --> R4[상태: PATCHED<br/>CSRF 누락 → 강화된 것으로 보임]
F4 -- 예 --> E5[수학 검증 페이로드 생성<br/>masta-cve-2026-48907-poc ...]
E5 --> E6[벡터 1: Multipart POST<br/>profile_file 업로드 to tmp/]
E6 --> F5{HTTP 200?}
F5 -- 예 --> E7["GET /tmp/masta-{rand}.xml.php"]
E7 --> F6{응답 본문에<br/>MATHOK:3105:END 포함?}
F6 -- 예 --> R5[상태: VULNERABLE<br/>신뢰도: CONFIRMED]
F6 -- 아니오 --> E8[벡터 2: Browser chain<br/>RPC를 통한 업로드 + 이름 변경]
E8 --> F7{RCE 확인됨?}
F7 -- 예 --> R5
F7 -- 아니오 --> E9[WAF 차단 페이지 확인]
E9 --> F8{WAF 감지됨?}
F8 -- 예 --> R6[상태: BLOCKED_BY_WAF]
F8 -- 아니오 --> R7[상태: SAFE]
F5 -- 아니오 --> E8
R1 --> S[결과를 Excel + 터미널 카드에 추가]
R2 --> S
R3 --> S
R4 --> S
R5 --> S
R6 --> S
R7 --> S
S --> D
D --> T[요약 대시보드 출력]
T --> U[보고서를 reports/에 Excel 저장]
U --> V[업로드된 모든 POC 파일에 대한<br/>정리 알림 출력]
style R5 fill:#ff0000,stroke:#333,color:#fff
style R3 fill:#32CD32,stroke:#333,color:#000
style R6 fill:#FFD700,stroke:#333,color:#000
아래 이미지를 실제 터미널 스크린샷으로 교체하세요.
터미널 스크린샷 자리표시자
아래 이미지를 실제 Excel 보고서 스크린샷으로 교체하세요.
Excel 보고서 자리표시자
팁: 로컬 테스트 Joomla! 인스턴스에 대해 스캐너를 실행하여 실제 스크린샷을 생성하세요. assets/ 폴더에 커밋하면 GitHub에서 자동으로 렌더링됩니다.
이 스캐너는 취약점을 확인하기 위해 대상 서버에 무해한 PHP 개념 증명을 업로드합니다. 도구는 스캔 종료 시 항상 업로드된 모든 파일을 나열하는 알림을 출력합니다. 테스트 후 반드시 수동으로 삭제해야 합니다. 이 파일들은 masta-{random}.xml.php 또는 유사한 이름으로 명명되며, 명확한 출처 표시 라인이 포함되어 있습니다:
masta-cve-2026-48907-poc. This test is done as part of Security Assessment - masta ghimau.
이 소프트웨어를 사용함으로써 귀하는 귀하의 행동에 대한 전적인 책임을 인정합니다. 코드는 "있는 그대로" 제공되며 어떠한 보증도 없습니다. 침투적 RCE 확인 스캐너를 실행하는 것의 의미를 이해하지 못한다면 이 도구를 사용하지 마십시오.
🛡 타인을 해치지 말고 자신의 자산을 보호하기 위해 사용하십시오.
| 기능 | 설명 |
|---|
| 🔍 다중 소스 핑거프린팅 | 메타 태그, 매니페스트, 정적 자산, 언어 파일 및 JCE 특정 엔드포인트를 통해 Joomla! 및 JCE 탐지 |
| 🛡 WAF 탐지 | Cloudflare, Incapsula, Sucuri, ModSecurity 차단 식별 |
| 🧪 안전한 침투적 POC | 무해한 PHP 수학 검증기 업로드 (출처 표시 및 정리용 라벨 명시) |
| 📊 카드 기반 터미널 UI | 대상별 Panel + Table 카드 (또는 ANSI 대체) |
| 📁 Excel 보고서 | 헤더, 고정 창, 열 너비, 색상 코딩된 상태 셀이 포함된 .xlsx 자동 생성 |
| ⚙️ 프록시 지원 | Burp / ZAP / 모든 HTTP 프록시를 통해 모든 트래픽 라우팅 |
| 🧵 스레드 | 대량 목록을 위한 구성 가능한 작업자 스레드 |
| 상태 | 의미 | 신뢰도 |
|---|
| VULNERABLE | PHP 페이로드 실행 및 수학 증명 확인됨. RCE가 실제로 존재함. | CONFIRMED |
| VULNERABLE_UPLOAD_ONLY | 파일 업로드는 성공했지만 PHP 실행이 차단됨. 악용 가능하지만 RCE는 미확인. | HIGH |
| PATCHED | Joomla! / JCE가 감지되었고 버전이 >= 2.9.99.5이거나 CSRF가 강화됨. | HIGH / MEDIUM |
| SAFE | JCE가 설치되지 않았거나 익스플로잇 벡터가 실패함 (패치/강화된 것으로 보임). | HIGH |
| BLOCKED_BY_WAF | 웹 애플리케이션 방화벽이 테스트를 차단함. | LOW |
| NOT_JOOMLA | 대상이 Joomla! 사이트가 아닌 것으로 보임. | CERTAIN |
| ERROR | 네트워크/연결/처리되지 않은 예외. | LOW |