
Этот репозиторий описывает cve-2021-29447 и небольшой скрипт для автоматической эксплуатации.
Этот репозиторий описывает уязвимость CVE-2021-29447, критическую ошибку безопасности в WordPress, которая позволяла аутентифицированные атаки с использованием внешних XML-сущностей (XXE) через медиатеку. Также предоставляется автоматический скрипт, демонстрирующий концепцию (PoC).
Уязвимость существовала в обработке WordPress метаданных внутри загруженных аудиофайлов. В частности:
Корневая причина: WordPress использует библиотеку getID3 для парсинга метаданных из медиафайлов, таких как WAV-файлы. WAV-файл может содержать блок XML-данных, называемый iXML. Злоумышленники могли создать вредоносный WAV-файл с XML-содержимым, который при парсинге уязвимой библиотекой вызывает XXE-атаку.
Затронутые версии: WordPress версии с 5.6 по 5.7.
Ключевое требование: Установка WordPress должна работать на PHP 8, так как изменения в конфигурации Libxml2 по умолчанию в PHP 8 были ключевыми для эксплуатации.
Воздействие: Успешная эксплуатация может привести к раскрытию произвольных файлов (например, чтение wp-config.php для получения учетных данных базы данных) и подделке запросов на стороне сервера (SSRF).
Ниже приведен фрагмент кода, который пытается парсить XML-данные в подблоке iXML:
Автоматизирует весь процесс: создает вредоносный WAV-файл и DTD, обрабатывает загрузку файла на целевой сайт WordPress и настраивает слушатель для получения скомпрометированных данных.
Настраиваемый: Позволяет указать путь к целевому файлу для эксфильтрации.
./payload.sh