CVE-2022-50896CVE-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开发框架提供的安全机制。