基本信息
| 漏洞编号 | CVE-2025-13192 |
| 插件名称 | PopupKit / Popup builder with Gamification |
| fofa | \”wp-content/plugins/popup-builder-block\” |
| 受影响版本 | <= 2.2.0 |
| 补丁版本 | 2.2.1 |
| CVSS 3.1 | 8.2(高危) |
| 漏洞类型 | SQL注入(SQL Injection) |
| 利用难度 | 低(无需认证) |
| 危害等级 | 高危 |
漏洞概述
Popup builder with Gamification 是一款功能强大的WordPress弹窗构建插件,支持游戏化元素、多步骤弹窗、页面级定位和WooCommerce触发器等功能。该插件在2.2.0及之前版本中存在多处SQL注入漏洞,攻击者可以通过构造恶意的REST API请求,在无需认证的情况下执行任意SQL语句,从而窃取数据库敏感信息、篡改数据或完全控制数据库。
漏洞成因
根本原因分析
该漏洞的根本原因在于插件开发者在处理用户输入时,未使用WordPress提供的预处理语句机制($wpdb->prepare()),而是直接将用户输入的参数拼接到SQL查询字符串中执行。
1. 不安全的SQL拼接方式
在 includes/Helpers/DataBase.php 文件中,getDB() 方法存在严重的设计缺陷:
public static function getDB( $columns, $table, $where = \’\’, $limit = 0, $count = false, $order_by = \’\’ ) {
global $wpdb;
$table_name = $wpdb->prefix . $table;
$sql = \”SELECT $columns FROM $table_name\”;
if ( $where ) {
$sql .= \” WHERE $where\”;
}
if

