Однофайловый сканер на Python для CVE-2026-48907 (Joomla JCE Editor RCE). Обнаруживает Joomla/JCE, выполняет интрузивный математически проверенный тест полезной нагрузки, поддерживает массовое многопоточное сканирование, обнаружение WAF и генерирует стилизованные отчёты Excel.
Однофайловый автономный сканер для Joomla! JCE Editor < 2.9.99.5 — Неаутентифицированное удаленное выполнение кода (CVE-2026-48907)
Автор: Hussein Mohamed (masta ghimau)
[!CAUTION]
🚨 ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ — ПРОЧТИТЕ ПЕРЕД ИСПОЛЬЗОВАНИЕМ
ЭТО ИНСТРУМЕНТ ДЛЯ ТЕСТИРОВАНИЯ БЕЗОПАСНОСТИ С ВТОРЖЕНИЕМ.
ЭТОТ ИНСТРУМЕНТ ПРЕДНАЗНАЧЕН ТОЛЬКО ДЛЯ АВТОРИЗОВАННЫХ ОЦЕНОК БЕЗОПАСНОСТИ.
Сканирование систем, которые вам НЕ принадлежат или на которые у вас НЕТ ПИСЬМЕННОГО РАЗРЕШЕНИЯ, является НЕЗАКОННЫМ в большинстве юрисдикций.
Автор (Hussein Mohamed masta ghimau) НЕ НЕСЕТ НИКАКОЙ ответственности за любое неправомерное использование, ущерб, судебные иски или потерю данных, возникающие в результате использования этого инструмента.
Запуская этот сканер, вы соглашаетесь:
Сканировать только те активы, которые ВАМ ПРИНАДЛЕЖАТ или на которые у вас есть ЯВНОЕ ПИСЬМЕННОЕ РАЗРЕШЕНИЕ.
Понимать, что в рамках интрузивной проверки точности на целевой сервер загружается безвредный POC-файл PHP.
Вручную удалить каждый загруженный POC-файл сразу после использования.
ИСПОЛЬЗУЙТЕ НА СВОЙ СТРАХ И РИСК.
[!IMPORTANT] Почему «интрузивность» важна для точности: Чтобы добиться максимально возможной уверенности и исключить ложные срабатывания, этот инструмент выполняет живую проверку с математическим подтверждением полезной нагрузки. Он загружает безопасную PHP-строку подтверждения концепции, а затем подтверждает удаленное выполнение кода, проверяя точный вычисленный математический результат, возвращенный сервером. Неинтрузивные сканеры, которые только считывают строки версий, могут пропустить обратно портированные исправления или пользовательские хот-фиксы. Этот инструмент проверяет, действительно ли уязвимость существует. Поэтому он интрузивен по своей конструкции — используйте с умом и при полной авторизации.
masta-cve-2026-48907.py — это полностью оригинальный однофайловый сканер на Python, предназначенный для обнаружения CVE-2026-48907 в экземплярах Joomla!, работающих с компонентом JCE Editor версии ниже 2.9.99.5.
requests/httpx..py файл, который можно разместить где угодно.openpyxl или rich, но выглядит красиво, когда они установлены.ThreadPoolExecutor..xlsx) с условной цветовой маркировкой.| Возможность | Описание |
|---|---|
| 🔍 Многоисточниковое снятие отпечатков | Обнаруживает Joomla! и JCE через мета-теги, манифесты, статические ресурсы, языковые файлы и специфичные для JCE конечные точки |
| 🛡 Обнаружение WAF | Определяет блокировки Cloudflare, Incapsula, Sucuri и ModSecurity |
| 🧪 Безопасный интрузивный POC | Загружает безвредный PHP-верификатор математических операций (с указанием авторства + явной пометкой для очистки) |
| 📊 Карточный интерфейс терминала | Богатые панели Panel + Table (или запасной вариант ANSI) для каждой цели |
| 📁 Отчет Excel | Автоматически генерируемый .xlsx с заголовками, закрепленными областями, шириной столбцов и цветовой кодировкой статусов |
| ⚙️ Поддержка прокси | Маршрутизация всего трафика через Burp / ZAP / любой HTTP-прокси |
| 🧵 Многопоточность | Настраиваемое количество рабочих потоков для массовых списков |
openpyxl для отчетов Excelrich для красивых карточек в терминалеВсе остальное — из стандартной библиотеки 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/>Парсинг CSRF-токена Joomla!]
E3 --> F4{Токен найден?}
F4 -- Нет --> R4[Статус: PATCHED<br/>CSRF отсутствует → вероятно, усилено]
F4 -- Да --> E5[Формирование полезной нагрузки с математическим верификатором<br/>masta-cve-2026-48907-poc ...]
E5 --> E6[Вектор 1: Multipart POST<br/>profile_file загрузка в 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: Цепочка браузера<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[Сохранение Excel-отчета в reports/]
U --> V[Вывод напоминания об очистке<br/>всех загруженных POC-файлов]
style R5 fill:#ff0000,stroke:#333,color:#fff
style R3 fill:#32CD32,stroke:#333,color:#000
style R6 fill:#FFD700,stroke:#333,color:#000| Статус | Значение | Уверенность |
|---|---|---|
| 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 |
Замените изображение ниже на ваш реальный скриншот терминала.

Замените изображение ниже на ваш реальный скриншот отчета 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, не используйте этот инструмент.
🛡 Используйте для защиты своих активов. Не для вреда другим.