特殊文件名上传导致群组文件功能拒绝服务漏洞
原创
游山玩水
游山玩水
山水SRC
2026年10月2日 09:09
河南
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
免责声明
本公众号分享的所有渗透测试技术文章仅面向合法授权的安全测试、学习交流与研究用途。读者必须确保自身行为符合《网络安全法》等相关法律法规,严禁将其用于任何未授权攻击等非法活动。因不当使用或传播相关内容所引发的任何法律责任与风险,由行为人自行承担,本公众号(或本人)概不负责
测试流程
测试前提
- 账户权限
:拥有两个有效测试账号(账号 A 和账号 B)。
2. 群组功能
:目标系统支持创建群组,且群组管理员/成员具备文件上传权限。
3. 文件共享
:群组内上传的文件对所有成员可见,文件列表页会统一渲染所有文件名。
4. 拦截工具
:已配置 Burp Suite 等代理工具,可拦截并修改上传请求。
5. 无严格校验
:服务端未对上传文件的文件名进行合法性校验(如禁止仅含 . 的名称)。
测试流程
步骤一:建立测试环境
- 使用账号 A 创建群组 G。
- 邀请账号 B 加入群组 G(作为普通成员),用于验证跨用户影响。
步骤二:对照组验证
- 账号 A 在群组 G 中正常上传一个文件(如
test.pdf)。 - 确认账号 A 和账号 B 均能正常访问群组 G 的“文件”标签页,列表渲染完整。
步骤三:构造恶意上传
- 账号 A 再次点击上传文件,选择任意本地文件(如
evil.txt)。 - 使用 Burp Suite 拦截上传请求(通常为
POST /api/upload或类似接口)。 - 在请求的
Content-Disposition头中,将filename参数修改为.(仅一个英文句点,不含其他字符)。
- 修改前:
Content-Disposition: form-data; name=\"file\"; filename=\"evil.txt\" - 修改后:
Content-Disposition: form-data; name=\"file\"; filename=\".\"
- 放行请求,记录服务端响应状态(通常为
200 OK或201 Created,表示文件被成功存储)。
步骤四:验证功能失效
- 账号 A 刷新群组 G 的“文件”标签页。
- 预期结果
:页面崩溃、持续加载、或返回错误提示(如 Sorry, something went wrong...),无法正常显示文件列表。
- 账号 B 登录并访问同一群组 G 的“文件”标签页。
- 预期结果
:同样出现页面崩溃或报错,证明漏洞影响所有群成员。
步骤五:验证恢复可能性
- 尝试通过 UI 删除该恶意文件(若删除按钮可用)。
- 若删除失败或文件无法选中,尝试使用管理员账号/API 强制删除。
- 若均无法恢复,则确认漏洞导致永久性拒绝服务,必须重建群组才能解决。
危害
| 维度 | 影响描述 |
|---|---|
| 功能完全瘫痪 | 高。群组“文件”标签页对所有成员不可用,任何访问该页面的用户都会遇到崩溃或错误,导致正常的文件共享和协作流程中断。 |
| 跨用户影响 | 高。漏洞不仅影响上传者本人,群组内所有被邀请成员(甚至后续加入的成员)均会受影响,危害范围随群组规模扩大而增加。 |
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。







评论