
Практическая лабораторная среда в контейнере для моделирования и эксплуатации уязвимости межсайтового скриптинга (XSS) на основе DOM в плагине Elementor Website Builder для WordPress, идентифицированной как CVE-2021-24891.
Эта лаборатория демонстрирует уязвимость межсайтового скриптинга (XSS) на основе DOM в плагине Elementor для WordPress (в версиях до 3.4.8). Уязвимость возникает из-за того, что клиентский код редактора Elementor напрямую читает данные из хэша URL (#...) и добавляет их в объектную модель документа (DOM) страницы без надлежащей санитизации.
Злоумышленник может создать вредоносную ссылку, содержащую JavaScript-нагрузку во фрагменте хэша. Когда вошедший в систему администратор (например, редактор сайта) переходит по этой ссылке, вредоносный скрипт выполняется в контексте его браузерной сессии, что потенциально позволяет злоумышленнику выполнять действия от его имени, похищать файлы cookie сессии или изменять содержимое веб-сайта.
#, которая обрабатывается на стороне клиента и не отправляется на сервер. Это точка входа для вредоносной нагрузки.Этот репозиторий содержит уязвимый экземпляр WordPress с плагином Elementor, затронутым данной уязвимостью, готовый к эксплуатации. Лабораторию можно запустить мгновенно в облаке или на локальной машине.
Это самый простой способ начать работу. Он предоставляет предварительно настроенное облачное окружение в вашем браузере.
Запустите Codespace: Нажмите на значок «Open in GitHub Codespaces» в верхней части этого README.
Дождитесь настройки: GitHub подготовит ваше окружение. После завершения появится терминал.
Запустите уязвимые сервисы: В терминале VS Code выполните следующую команду:
docker compose up
Это запустит уязвимый сайт WordPress и его базу данных. Появится вкладка «Ports». Нажмите ссылку для порта 8080, чтобы открыть WordPress в новой вкладке браузера.
Запустите всю лабораторию на своей машине с помощью Docker.
Предварительные требования:
Инструкции:
Клонируйте репозиторий:
git clone https://github.com/hackmelocal/CVE-2021-24891-Simulation.git
cd CVE-2021-24891-Simulation
Запустите уязвимые сервисы: В вашем терминале выполните команду:
docker compose up
Откройте WordPress: Откройте веб-браузер и перейдите по адресу http://localhost:8080.
JavaScript-код в редакторе Elementor читает значение из window.location.hash и небезопасно записывает его в DOM страницы. Поскольку входные данные (<script>alert(...)</script>) не санитизируются, браузер интерпретирует их как допустимый тег скрипта и выполняет его. Это классический пример DOM-based XSS.
Эта лаборатория предоставлена исключительно в образовательных целях. Создатель не несёт ответственности за любое неправомерное использование предоставленной информации или инструментов. Всегда убеждайтесь, что у вас есть надлежащее разрешение перед проведением любого тестирования на безопасность.
Этот проект лицензирован в соответствии с MIT License. Подробности см. в файле LICENSE.