Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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é.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-44011-craftcms-auth-rce — Le PoC de CVE-2026-44011 : RCE de Craft CMS avec un utilisateur authentifié. | Kitploit
Outils/GitHubGitHub/4xura/cve-2026-44011-craftcms-auth-rce
Analyse des VulnérabilitésExploitationExploitation d'Applications WebPost-ExploitationSécurité WebTests d'IntrusionCommandement et ContrôleOutil d'Accès à Distance
GitHub4xura/cve-2026-44011-craftcms-auth-rce

CVE-2026-44011-craftcms-auth-rce

Le PoC de CVE-2026-44011 : RCE de Craft CMS avec un utilisateur authentifié.

Voir le dépôt
618il y a 25 joursPas 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-44011 PoC RCE authentifié de Craft CMS

Pour des tests autorisés uniquement.

L'avis de sécurité Craft CMS liste >=4.0.0, <4.17.12 et >=5.0.0, <5.9.18 comme versions affectées, et crédite precicom-vincent-tl comme découvreur.

Exécution

python -m pip install -r requirements.txt
python cve-2026-44011.py -b 'https://example.com' -u '<username' -p '<password>' -c '<command>'

Arguments requis :

  • -b, --base-url : URL de Craft, incluant http:// ou https://.
  • -u, --username : nom d'utilisateur du panneau de contrôle.
  • -p, --password : mot de passe du panneau de contrôle.
  • -c, --command : commande à exécuter et dont la sortie doit être capturée.

Arguments optionnels :

  • -P, --cp-path : chemin du panneau de contrôle (par défaut : /admin).
  • -s, --site-id : ID du site (par défaut : 1).
  • -e, --element-type : type d'élément (par défaut : craft\elements\Category).
  • -f, --csrf-field : nom du champ CSRF de connexion (par défaut : CRAFT_CSRF_TOKEN).
  • -t, --timeout : délai d'attente des requêtes et des callbacks en secondes (par défaut : 15).
  • -F, --force : continuer lorsque la version de Craft est indisponible ou en dehors des plages de l'avis.
  • -H, --callback-host : adresse que la cible peut atteindre (adresse locale déduite par défaut ; à surcharger derrière un pivot).
  • --listen-port : port d'écoute (par défaut : un port libre sélectionné par l'OS ; définir un port fixe pour la redirection).

Analyse de la vulnérabilité

1. Entrée de condition

Dans l'action de recherche vulnérable, condition passe du corps POST à la création d'objet sans nettoyage.

$conditionConfig = $this->request->getBodyParam('condition');
$condition = Craft::$app->getConditions()->createCondition($conditionConfig);

2. Disposition de champs imbriquée

ElementCondition::setFieldLayouts() construit une disposition à partir de chaque tableau fourni.

if (is_array($fieldLayout)) {
    $fieldLayout['type'] = $this->elementType;
    return $fieldsService->createLayout($fieldLayout);
}

3. Exécution d'un callable

La charge utile de l'avis attache l'AttributeTypecastBehavior de Yii avec une clé as et câble un événement avec on *. Le comportement atteint Psy\Readline\Hoa\ConsoleProcessus::execute via le typecast de callable de Yii.

condition.fieldLayouts[]
  -> FieldLayout behavior + event
  -> AttributeTypecastBehavior::typecastValue()
  -> call_user_func()
  -> ConsoleProcessus::execute()

Le contrôleur corrigé applique Component::cleanseConfig() à la condition avant la création de l'objet.

Notes

  • La documentation CSRF de Craft exige une session et un jeton valides pour les actions POST. Le script les transporte tout au long de la connexion et de la recherche.
  • ConsoleProcessus::execute() de Psy échappe les métacaractères du shell par défaut. Le PoC sert un script temporaire pour exécuter -c, reçoit sa sortie sur un écouteur HTTP intégré, puis arrête l'écouteur ensuite. Utilisez -H si la cible ne peut pas atteindre l'adresse déduite.
  • La capture de sortie nécessite sh, curl et mktemp sur la cible.
  • Tests : python -m unittest discover -s tests -v.
Télécharger l’outil