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
Outils/GitHubGitHub/absholi7ly/elementor-pro-unauthenticated-arbitrary-file-upload-to-rce
Génération de PayloadsAnalyse des VulnérabilitésExploitationExploitation d'Applications WebSécurité Web
GitHubabsholi7ly/elementor-pro-unauthenticated-arbitrary-file-upload-to-rce

Elementor-Pro-Unauthenticated-Arbitrary-File-Upload-to-RCE

Voir le dépôt
51il y a 2 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 →

À propos

CVE-2026-32475 Le champ File Upload des formulaires Elementor Pro gère la validation et le traitement des fichiers dans deux boucles distinctes, avec une gestion différente des entrées de téléversement vides (UPLOAD_ERR_NO_FILE). Un attaquant non authentifié peut soumettre un multipart

Partager
  • Auteur de l'exploit : Abdualhadi Khalifa (https://x.com/absholi7ly)
  • Version : Elementor Pro <= 4.2.1
  • Testé sur : WordPress + Elementor Pro 4.2.1 (Windows / Laragon / Apache )
  • CVE : CVE-2026-32475
  • Crédits : Vulnérabilité découverte par Tin Pham (TF1T) via le Patchstack Bug Bounty Program
  • Catégorie : WebApps

Description :

Le champ de téléversement de fichier des formulaires Elementor Pro gère la validation et le traitement des fichiers dans deux boucles distinctes avec une gestion différente des entrées de téléversement vides (UPLOAD_ERR_NO_FILE). Un attaquant non authentifié peut soumettre une requête multipart avec une première partie de fichier vide suivie d'une charge utile PHP pour le même champ, ce qui fait que validation() retourne prématurément tandis que process_field() déplace toujours le fichier PHP dans un répertoire public : wp-content/uploads/elementor/forms/.php

Prérequis :

  • Page publiée contenant un widget Formulaire Elementor Pro
  • Champ de téléversement de fichier présent (non obligatoire / paramètres par défaut)

Utilisation

Récupère automatiquement le post_id, form_id et field_id de la page cible :

root@kitploit:~
python poc.py -t http://localhost/wp --page-url "http://localhost/wp/?page_id=16" -c "whoami"

Ou :

root@kitploit:~
python poc.py -t http://localhost/wp --page-id 16 -c "whoami"

Session interactive

Démarrez une session interactive :

root@kitploit:~
python poc.py -t http://localhost/wp --page-id 16 -i

Poc

Poc

Vous pouvez modifier le PoC pour l'adapter à vos besoins et à votre environnement de test.

Remarque

Le cœur de la vulnérabilité consiste à contourner le mécanisme de téléversement de fichiers lui-même. Cette partie ne diffère pas selon que vous effectuez le test dans un laboratoire local ou contre un vrai serveur : la première partie de fichier vide + la charge utile PHP dans le champ de téléversement contournent la validation de l'extension, mais le fichier est toujours traité par process_field(). Nous avons démontré que le fichier est bien écrit, ce qui correspond exactement à ce qui est décrit.

Concernant le chemin Laragon codé en dur :

Cela servait uniquement à faciliter la vérification locale.

Sur la cible réelle, le modèle de répertoire est connu et fixe :

root@kitploit:~
/wp-content/uploads/elementor/forms/

Ce qui n'est pas fixe, c'est le nom de fichier final.

Elementor ne conserve pas le nom de fichier d'origine. Dans process_field(), le nom de fichier stocké est généré comme suit :

Par conséquent, si vous téléversez shell.php, le nom de fichier peut devenir quelque chose comme :

root@kitploit:~
66f3a1c2e9b47.php

dans :

root@kitploit:~
/wp-content/uploads/elementor/forms/

uniqid() est basé sur le temps et n'est pas une valeur aléatoire forte ; il est approximativement basé sur l'horodatage + les microsecondes. Par conséquent, récupérer le fichier à distance devient un problème de découverte de nom de fichier plutôt qu'un problème de téléversement.

Par exemple, vous pouvez utiliser une fenêtre temporelle basée sur l'en-tête Date du serveur et le timing des requêtes, rechercher dans une plage étroite autour de l'heure du téléversement, ou récupérer l'URL exacte si le formulaire envoie un e-mail contenant [all-fields].

J'ai gardé le PoC concentré sur la démonstration du problème central lui-même, à savoir le téléversement de fichiers non authentifié, de manière claire et directe. Expliquer entièrement la récupération à distance de la valeur uniqid() rendrait la démonstration beaucoup plus longue que nécessaire pour valider la vulnérabilité elle-même.

Télécharger l’outil