1. 漏洞概要
CVE-2025-47812 да Крылатый FTP-сервер 中存在的一个严重远程代码执行(RCE)漏洞。该漏洞源于服务器在处理 Web 管理界面的用户输入时,未能正确过滤空字节(Null Byte, \0 возможно %00)。
攻击者可以通过在用户名参数中注入空字节和恶意的 Lua 脚本代码,绕过身份验证逻辑或利用匿名登录机制,将恶意代码注入到服务器的会话文件(Session Files)中。当服务器后续加载该会话文件时,注入的 Lua 代码将被解析并执行。
由于 Wing FTP Server 默认以高权限(Windows 下为 SYSTEM,Linux/Unix 下为 Root)运行,成功利用该漏洞将直接导致服务器完全沦陷。目前已监测到该漏洞在互联网上存在在野利用活动。
漏洞影响评估:
2. 漏洞分析
2.1 漏洞原理
该漏洞的核心在于 Wing FTP Server 的 Web 接口(特别是处理登录逻辑的组件)与底层会话管理机制之间对字符串处理的不一致性。
-
输入点:漏洞触发点位于处理用户登录请求的接口,主要是
POST /loginok.html. -
空字节截断:后端 C++ 认证模块在验证用户名时,遇到空字节(
\0)即停止读取。这意味着如果攻击者提交username=anonymous%00[恶意代码],认证模块仅读取anonymous,从而允许通过认证(假设开启了匿名访问或使用了有效用户名)。 -
Lua 注入:虽然认证模块被截断欺骗,但负责将用户信息写入会话文件(通常存储为 Lua 脚本格式)的模块并未被空字节截断,而是将完整的字符串(包括空字节后的恶意代码)写入了磁盘上的会话文件。
-
выполнение кода:Wing FTP 使用 Lua 脚本来管理会话状态。当用户访问其他页面(如
/dir.html)触发会话加载时,服务器会解析并执行该会话文件中的 Lua 代码,从而触发 RCE。
2.2 攻击向量
-
Путь атаки:网络远程攻击(Network)。
-
权限要求:无需高权限。如果服务器开启了匿名登录(Anonymous),攻击者可完全未经身份验证利用;若未开启,攻击者仅需拥有一个低权限普通账号即可提权。
-
交互性:无需用户交互(Zero-click)。
3. 漏洞影响
3.1 技术影响
-
完全系统控制:攻击者可执行任意系统命令。
-
Повышение привилегий:恶意代码继承 Wing FTP 服务的权限,通常为
NT AUTHORITY\SYSTEM(Windows) 或корень(Linux)。 -
持久化与横向移动:攻击者可利用此漏洞安装后门、勒索软件,或以此为跳板攻击内网其他资产。
3.2 业务影响
-
данные нарушения:FTP 服务器上存储的所有敏感文件(源代码、财务数据、个人信息等)面临被窃取风险。
-
перерыв в обслуживании:攻击者可删除文件或加密数据(勒索软件),导致业务瘫痪。
-
合规风险:导致企业违反 GDPR、HIPAA 或等级保护等相关法律法规。
4. 漏洞利用分析与验证
警告: 本节内容仅用于安全研究与防御验证,严禁用于非法攻击。
4.1 概念验证逻辑 (PoC Logic)
攻击过程主要分为两个 HTTP 请求阶段:
步骤 1:注入恶意 Session (Payload Delivery)
攻击者向 /loginok.html 发送 POST 请求。
-
Header: Content-Type: application/x-www-form-urlencoded
-
Payload (示意):
Plaintextusername=ValidUser%00';os.execute('calc.exe');--&password=AnyPassword解析:
ValidUser通过了验证检查。%00后的 Lua 代码被写入 Session 文件。
步骤 2:触发代码执行 (Trigger)
攻击者携带步骤 1 返回的 Cookie (Session ID) 访问任意需要鉴权的页面,例如 /dir.html。
-
服务器加载 Session 文件 -> 解析 Lua 代码 -> 执行
os.execute('calc.exe').
4.2 验证方法
日志审计:
检查 Wing FTP 的访问日志(Access Logs)或系统日志,寻找以下特征:
-
справа
loginok.html的请求中,POST 数据包含%00或十六进制0x00. -
Session 目录下出现包含异常 Lua 语法的会话文件。
-
服务器进程(
wftpserver.exe)产生了非预期的子进程(如cmd.exe,powershell.exe,sh,bash)。
网络流量分析:
在 WAF 或 IDS/IPS 上监控 HTTP POST 请求体,匹配正则表达式规则:username=.*%00.*。
5. 漏洞解决方案
5.1 官方修复方案 (推荐)
供应商 Wing Soft 已发布安全更新修复此漏洞。
原创文章,作者:首席安全官,如若转载,请注明出处:https://www.cncso.com/ru/cve-2025-47812-wing-ftp-server-remote-code-execution.html
