1. краткое описание уязвимостей
CVE-2025-47812 да Крылатый FTP-сервер Существует критическая уязвимость Remote Code Execution (RCE). Уязвимость связана с тем, что сервер не может должным образом отфильтровать нулевой байт (NB) при обработке пользовательского ввода в веб-интерфейсе администрирования., \0 возможно %00)。
Злоумышленник может внедрить вредоносный код в файлы сеансов сервера, вставив нулевые байты и вредоносный код сценария Lua в параметр username, обойдя логику аутентификации или используя механизмы анонимного входа. Когда сервер впоследствии загружает файл сессии, внедренный код Lua разбирается и выполняется.
Поскольку Wing FTP Server по умолчанию работает с повышенными привилегиями (SYSTEM в Windows, Root в Linux/Unix), успешная эксплуатация этой уязвимости приведет к следующемуСерверы полностью вышли из строя.. Уязвимость была отслежена на предмет наличия "дикой" активности по эксплуатации в Интернете.
Оценка воздействия на уязвимость:
2. анализ уязвимости
2.1 Принципы уязвимости
Суть уязвимости заключается в несоответствии обработки строк между веб-интерфейсом Wing FTP Server (в частности, компонентом, обрабатывающим логику входа в систему) и базовым механизмом управления сессиями.
-
точка входа: Триггеры уязвимости находятся в интерфейсе, обрабатывающем запрос на вход пользователя в систему, в основном в интерфейсе
POST /loginok.html. -
Усечение нулевого байта: Внутренний модуль аутентификации C++ сталкивается с нулевым байтом при проверке имени пользователя (
\0), т.е. прекращает чтение. Это означает, что если злоумышленник отправитusername=anonymous%00[恶意代码]Модуль аутентификации считывает толькоаноним, что позволяет пройти аутентификацию (при условии, что включен анонимный доступ или используется правильное имя пользователя). -
Инъекция Lua: Хотя модуль аутентификации обрезается для подмены, модуль, отвечающий за запись информации о пользователе в файл сессии (который обычно хранится в формате Lua script), не обрезается нулевым байтом, а вместо этого используется модульПолная строка(включая вредоносный код после нулевого байта) был записан в файл сессии на диске.
-
выполнение кода: Wing FTP использует скрипты Lua для управления состоянием сеанса. Когда пользователи посещают другие страницы (например
/dir.html) Когда происходит загрузка сессии, сервер разбирает и выполняет код Lua в файле сессии, что вызывает RCE.
2.2 Векторы атак
-
Путь атаки: Удаленная сетевая атака (сеть).
-
требование к полномочиям: Высокие привилегии не требуются. Если на сервере разрешен анонимный вход (Anonymous), то злоумышленник может использовать его полностью без аутентификации; если нет, то злоумышленнику достаточно иметь обычную учетную запись с низкими привилегиями, чтобы поднять мощность.
-
интерактивность: Не требует взаимодействия с пользователем (Zero-click).
3. влияние уязвимостей
3.1 Технологические последствия
-
Полный контроль над системой: Злоумышленник может выполнить произвольные системные команды.
-
Повышение привилегий: Вредоносный код наследует права доступа службы Wing FTP, обычно
NT AUTHORITY\SYSTEM(Windows) иликорень(Linux). -
Устойчивость и боковое движениеЗлоумышленники могут использовать эту уязвимость для установки бэкдоров, программ-вымогателей или в качестве плацдарма для атак на другие ресурсы интрасети.
3.2 Операционное воздействие
-
данные нарушения: Все конфиденциальные файлы (исходный код, финансовые данные, личная информация и т. д.), хранящиеся на FTP-сервере, подвергаются риску быть украденными.
-
перерыв в обслуживании: Злоумышленники могут удалять файлы или шифровать данные (ransomware), парализуя бизнес.
-
риск соответствия: Заставляет компании нарушать законы и правила, такие как GDPR, HIPAA или защита класса.
4. Анализ и проверка эксплойтов
Внимание: Содержимое этого раздела предназначено только для исследования безопасности и проверки защиты и строго запрещено для использования в незаконных атаках.
4.1 Логика доказательства концепции (PoC Logic)
Процесс атаки делится на две основные фазы HTTP-запроса:
Шаг 1: внедрение вредоносного сеанса (доставка полезной нагрузки)
Злоумышленник отправляет POST-запрос по адресу /loginok.html.
-
Заголовок: Content-Type: application/x-www-form-urlencoded
-
Полезная нагрузка (схема):
Открытый текстusername=ValidUser%00';os.execute('calc.exe');--&password=AnyPasswordразбор:
ValidUserПрошел проверку на валидность.%00Затем код Lua записывается в файл сессии.
Шаг 2: Выполнение триггерного кода (триггер)
Злоумышленник переносит cookie (идентификатор сеанса), полученный на шаге 1, на любую страницу, требующую аутентификации, например /dir.html.
-
Сервер загружает файл сессии -> разбирает код Lua -> выполняет
os.execute('calc.exe').
4.2 Методы валидации
Журнал аудита:
Проверьте журналы доступа Wing FTP или системные журналы на наличие следующих признаков:
-
справа
loginok.htmlДанные POST-запроса содержат%00или шестнадцатеричный0x00. -
Файлы сессий, содержащие необычный синтаксис Lua, появляются в каталоге сессий.
-
Серверные процессы (
wftpserver.exe) порождали непредусмотренные дочерние процессы (такие какcmd.exe,powershell.exe,ш,bash)。
Анализ сетевого трафика:
在 WAF 或 IDS/IPS 上监控 HTTP POST 请求体,匹配正则表达式规则:username=.*%00.*。
5. решения по устранению уязвимостей
5.1 Официальные исправления (рекомендуется)
Производитель, компания Wing Soft, выпустила обновление безопасности для устранения этой уязвимости.
Оригинальная статья написана Chief Security Officer, при воспроизведении просьба указывать: https://www.cncso.com/ru/cve-2025-47812-wing-ftp-server-remote-code-execution.html.



