
PoC Python validant CVE-2025-6325, une élévation de privilèges non authentifiée, et CVE-2025-6327, une RCE par téléversement de fichier arbitraire, dans King Addons for Elementor <= 51.1.36.
Outil de recherche et de validation pour King Addons for Elementor <= 51.1.36, couvrant deux vulnérabilités documentées :
Uniquement pour les tests de sécurité autorisés, la recherche de vulnérabilités et les environnements de laboratoire contrôlés.
Ce projet fournit un PoC à double usage pour valider l'impact de sécurité de deux vulnérabilités dans King Addons for Elementor.
Élévation de privilèges non authentifiée via la fonctionnalité d'inscription de King Addons.
Le flux vulnérable accepte une valeur user_role contrôlée par le client et la transmet à la création d'utilisateur WordPress sans appliquer de liste blanche de rôles appropriée.
Version affectée : <= 51.1.36
Version corrigée : 51.1.37
Le flux d'inscription vulnérable utilise :
POST /wp-admin/admin-ajax.php
action=king_addons_user_register
user_role=administrator
Le PoC vérifie également si le compte créé peut s'authentifier et accéder à la page d'administration des utilisateurs WordPress.
Téléversement de fichier arbitraire non authentifié via la fonctionnalité de téléversement du constructeur de formulaires de King Addons.
Le gestionnaire de téléversement vulnérable peut accepter incorrectement un fichier PHP, entraînant un fichier téléversé accessible via le web et une exécution de code côté serveur potentielle.
Version affectée : <= 51.1.36
Version corrigée : 51.1.37
L'action AJAX concernée est :
POST /wp-admin/admin-ajax.php
action=king_addons_upload_file
Le PoC valide le flux de téléversement et vérifie si le fichier de test téléversé peut exécuter une commande id bénigne.
Le script prend en charge quatre modes de fonctionnement :
check
privesc
upload
both
Ces modes sont exposés directement par l'interface en ligne de commande.
Python 3 est requis.
Aucun paquet Python tiers n'est requis.
Vérifiez votre version de Python :
python3 --version
Exécuter les deux vérifications de vulnérabilité :
python3 exploit.py -u http://target.local --exploit both
Découvrir les nonces King Addons exposés sans exécuter les étapes d'exploitation :
python3 exploit.py -u http://target.local --exploit check
python3 exploit.py -u http://target.local --exploit privesc
python3 exploit.py -u http://target.local --exploit upload
Créez un fichier de cibles :
http://target1.local
https://target2.local
http://target3.local
Les commentaires et les lignes vides sont ignorés.
Exécuter une évaluation passive :
python3 exploit.py -l targets.txt --exploit check
Exécuter les deux étapes de validation :
python3 exploit.py -l targets.txt --exploit both -t 20
Exécuter la validation du téléversement :
python3 exploit.py -l targets.txt --exploit upload -t 20
Exécuter la validation de l'élévation de privilèges :
python3 exploit.py -l targets.txt --exploit privesc -t 20
Le PoC recherche automatiquement dans les pages cibles les nonces requis par les deux flux vulnérables.
Paramètres d'exploration par défaut :
Depth : 3
Max pages : 80
Timeout : 20 seconds
Threads : 10
Ces valeurs par défaut sont définies dans la configuration CLI du script.
Exemple :
python3 exploit.py \
-l targets.txt \
--exploit both \
-t 20 \
--depth 3 \
--max-pages 80 \
--timeout 20
Le script utilise par défaut results.tsv pour les résultats structurés et loot.txt pour les entrées de validation réussies.
Pendant l'exécution, l'outil signale plusieurs états.
Indique que la validation du téléversement a réussi et que le fichier PHP de test a répondu à la requête de vérification.
Exemple :
PWNED [SHELL]
Indique que la validation de l'élévation de privilèges a créé un compte en utilisant le flux d'inscription vulnérable.
L'outil enregistre également si le compte a été vérifié sur la page d'administration des utilisateurs WordPress.
Le compte créé a été authentifié avec succès et confirmé sur la page des utilisateurs WordPress.
La requête d'inscription a réussi, mais l'étape de vérification suivante n'a pas pu confirmer le compte résultant.
Aucun résultat de validation réussi n'a été obtenu.
La cible a produit une erreur réseau, d'analyse, d'exploration ou autre erreur d'exécution.
Les résultats structurés sont écrits au format TSV :
results.tsv
La sortie contient des champs pour :
target
status
shell_url
shell_rce
priv_user
priv_pwd
priv_verified
err
Ce format est utile pour importer les résultats dans des tableurs ou pour un traitement ultérieur.
Les entrées de validation réussies sont également écrites dans :
loot.txt
Le script écrit les résultats de shell et de validation de privilèges comme des entrées distinctes.
Visitor
│
▼
Public King Addons Register Form
│
▼
Nonce discovery
│
▼
king_addons_user_register
│
▼
Client-controlled user_role
│
▼
WordPress user creation
│
▼
Privilege escalation validation
Le PoC soumet spécifiquement :
user_role=administrator
au point de terminaison d'inscription.
Visitor
│
▼
King Addons Form Builder
│
▼
Upload nonce discovery
│
▼
king_addons_upload_file
│
▼
PHP test file upload
│
▼
Uploaded file URL
│
▼
Benign execution verification
Le PoC utilise un nom de fichier de test généré de manière unique et vérifie l'URL de téléversement retournée.
L'implémentation de recherche a été testée contre :
WordPress 6.8 / 7.1
Elementor 4.2.3
King Addons 51.1.14
Les notes de recherche rapportent une validation réussie des deux flux dans un environnement de laboratoire contrôlé, incluant l'élévation de privilèges et l'exécution de shell. Un contrôle négatif a également été testé contre la version 51.1.37.
Les notes de recherche indiquent que certaines versions ZIP de WordPress.org pour 51.1.35 et 51.1.36 ont été ultérieurement réétiquetées avec des correctifs partiels.
L'implémentation vulnérable a donc été confirmée en utilisant le tag SVN référencé 51.1.14.
Si vous reproduisez la recherche, utilisez la version et le paquet exacts identifiés par la recherche plutôt que de supposer que chaque paquet étiqueté 51.1.35 ou 51.1.36 contient un code vulnérable identique.
Ce projet est destiné à :
Ne testez que les systèmes pour lesquels vous disposez d'une autorisation explicite.
N'utilisez pas ce projet contre une infrastructure tierce sans autorisation.
L'auteur n'encourage pas l'accès non autorisé, la persistance, le vol de données ou la perturbation de systèmes.
Ce logiciel est fourni à des fins de recherche en sécurité et de tests autorisés.
Il vous incombe de vous assurer que votre utilisation de ce projet est conforme aux lois, réglementations, contrats et exigences d'autorisation applicables.
L'auteur et les contributeurs n'assument aucune responsabilité pour toute utilisation abusive, tout dommage, toute interruption de service, toute perte de données ou toute autre conséquence résultant d'une utilisation non autorisée.
JohenLastGen — JLG NETWORK
Research & Security Tooling
Telegram :
@johenlastgen
Canal :
@jlgnetworkredirect
MIT License
Voir LICENSE pour le texte complet de la licence.
| Option | Description |
|---|
-u, --url | Tester une URL cible unique |
-l, --list | Fichier contenant les URL cibles |
-e, --exploit | Sélectionner check, privesc, upload ou both |
-t, --threads | Nombre de workers simultanés |
--depth | Profondeur maximale des liens d'exploration |
--max-pages | Nombre maximal de pages explorées par cible |
--timeout | Délai d'expiration des requêtes HTTP en secondes |
-o, --output | Sortie des résultats TSV |
--loot | Sortie des validations réussies |
--no-color | Désactiver les couleurs du terminal |