## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-SHADOWGIT30-CVE-2025-47812
# CVE-2025-47812
Это Proof of Concept (PoC) эксплойта для Wing FTP Server (CVE-2025-47812)
## Описание
В версиях Wing FTP Server до 7.4.4 присутствовала уязвимость удалённого выполнения кода (**RCE**) из-за небезопасной обработки параметра имени пользователя. Когда нам разрешён вход на страницу _/loginok.html_ , мы можем внедрить нулевой байт `%00`, за которым следует Lua-код, чтобы получить RCE.
## Предыстория инцидента
Когда мы отправляем POST-запрос на страницу _loginok.html_ , функция `c_CheckUser()` (та, что проверяет правильность имени пользователя и пароля) использует strlen(). Проблема в том, что используемая функция уязвима к усечению по нулевому байту. Это означает, что если мы отправим `%00` после имени пользователя, `c_CheckUser()` проверит только ту часть строки, которая находится перед нулевым байтом: "anonymous%00........." --> "anonymous".
После этого приложение создаёт переменную SESSION, которая записывается в файл. Однако этот файл содержит не только имя пользователя, но и всю строку, включая нулевой байт и следующий за ним код. Поскольку файл является Lua-файлом, можно внедрить Lua-код, что приведёт к RCE.
## Эксплуатация
Представьте, что анонимный вход разрешён. Если мы отправим POST-запрос со следующей структурой: `username=anonymous%00]]%0dlocal+h+%3d+io.popen("whoami")%0dlocal+r+%3d+h%3aread(\"*a\")%0dh%3aclose()%0dprint(r)%0d--&password=&username_val=anonymous&password_val=`, мы внедрим команду после нулевых байтов с помощью Lua-кода. После этого нам нужно скопировать UID из ответа и отправить GET-запрос на любую аутентифицированную страницу, например на страницу , используя тот же UID.