cduram/NotCVE-2026-0009
GitHub: cduram/NotCVE-2026-0009
针对 NitroShare v0.3.4 局域网文件传输服务路径穿越漏洞的概念验证项目,附带可用的 PoC 脚本和修复建议。
Stars: 0 | Forks: 0
# nitroshare 中的路径穿越漏洞
## 描述
NitroShare Desktop v0.3.4 的局域网文件传输服务器中存在路径穿越漏洞。该服务器在所有网络接口(端口 40818)上进行监听且无需身份验证。在接收文件时,来自发送方 JSON item header 的 `name` 字段被直接传递,而没有验证解析后的路径是否保留在传输根目录 `C:\UserName\Downloads\NitroShare` 内。同一局域网内的攻击者可以发送包含 `../`(经典的 dot dot slash 攻击)序列的恶意文件名,从而在当前用户具有访问权限的任何位置写入文件,包括 Windows 启动文件夹,以实现在下次登录时执行代码(因此创建了此 POC)。此过程不需要用户交互。此外,TLS 默认处于禁用状态(即该应用程序提供的身份验证方式),这意味着默认情况下不需要任何身份验证。根据我在 IT 和信息安全领域多年的工作经验,我推测大多数用户都会保持这种默认设置。
## 复现步骤
1. 从局域网连接到 TCP 端口 40818 上的 NitroShare 传输服务器。
2. 发送 JSON 传输头数据包:`{"name":"attacker","size":"","count":"1"}`。
3. 发送带有路径穿越文件名的 JSON item header 数据包:
{"name":"../../AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/payload.exe","directory":false,"created":"0","last_modified":"0","last_read":"0","size":""}
4. 发送包含恶意文件内容的二进制数据包。
5. 文件将被写入下载目录之外的攻击者指定路径中。
6. 如果目标是启动文件夹,恶意 payload 将在下次用户登录时自动执行。
我们提供了一个可用的 PoC(`poc_path_traversal_via_lan_transfer___arbitrary_file_w.py`),并已在 Windows 上的 NitroShare 0.3.4 中验证通过。
## 建议修复方案
1. **对接收到的文件名进行净化处理** — 剔除或拒绝路径分隔符(`/`、`\`)以及 `..` 序列。在使用 `QDir::absoluteFilePath()` 解析路径后,需在继续执行操作前验证结果路径是否以根传输目录开头。
2. **要求提供密码或默认启用 TLS** — 出厂默认启用 TLS 并在首次运行时自动生成证书,或者提供设置密码的选项。
3. **增加传输批准提示** — 在将接收到的文件写入磁盘之前提示用户进行确认。
4. **实施身份验证** — 在接受传输之前,要求提供配对机制(共享密钥、二维码或证书交换)。
## 披露时间线
- **2026年4月13日** - 通过 GitHub 仓库上公布的电子邮件联系了开发者。未收到回复。
- **2026年4月19日** - 第二次尝试。未收到回复。
- **2026年5月3日** - 第三次尝试。未收到回复。
标签:DNS 反向解析, PoC, 任意文件写入, 局域网, 暴力破解, 路径穿越, 逆向工具