CVE-2025-11601CVE-2025-11601是SourceCodester在线学生成绩管理系统(Online Student Result System)1.0版本中存在的一个高危SQL注入漏洞。该漏洞位于系统的登录页面文件/login.php中,具体存在于对用户输入参数Username的处理逻辑中。由于应用程序未对用户输入进行充分的过滤和参数化处理,攻击者可以通过构造恶意的SQL语句作为Username参数的值,绕过身份验证或提取数据库中的敏感信息。
该漏洞的CVSS 3.1评分为7.3分,属于高危级别。其攻击向量为网络(AV:N),攻击复杂度低(AC:L),无需任何特权(PR:N),也无需用户交互(UI:N)。在影响方面,该漏洞对机密性、完整性和可用性均产生低级别影响(C:L/I:L/A:L),这意味着攻击者可能读取、修改或删除数据库中的数据。
值得注意的是,该漏洞的利用代码已经公开披露,这意味着任何具有基本攻击知识的个人都可以利用此漏洞对未打补丁的系统发起攻击。该漏洞已于2025年10月11日被公开披露,并由VulDB收录。由于SourceCodester的开源性质和广泛应用,该漏洞对教育机构、学校管理系统等使用该系统的组织构成了实际的安全威胁。
该漏洞的根源在于/login.php文件中对Username参数的处理缺乏适当的输入验证和参数化查询机制。SQL注入是一种经典的注入攻击类型,当应用程序将用户输入直接拼接到SQL查询语句中而未进行适当的转义或参数化处理时,攻击者就可以通过注入恶意的SQL代码片段来改变原始查询的语义。
具体而言,在正常的登录流程中,应用程序可能会执行类似以下的SQL查询:
SELECT * FROM users WHERE username = '[用户输入的用户名]' AND password = '[哈希后的密码]'
由于Username参数未经过滤,攻击者可以输入类似 ' OR '1'='1' -- 的恶意字符串,使得查询变为:
SELECT * FROM users WHERE username = '' OR '1'='1' --' AND password = '...'
上述注入使得WHERE条件恒为真,从而绕过身份验证。攻击者还可以利用UNION SELECT等技术提取数据库中的其他敏感信息,如管理员凭据、学生成绩数据等。此外,通过使用时间盲注技术(如SLEEP()函数),即使在没有错误回显的情况下,攻击者也可以逐步推断出数据库内容。
由于漏洞的利用代码已经公开,攻击者可以方便地使用自动化工具(如sqlmap)来扫描和利用存在此漏洞的系统。建议管理员立即采取防护措施,包括应用输入验证、使用参数化查询和部署Web应用防火墙(WAF)等。