孚盟云CRM BusinessPriceListList.aspx SQL注入漏洞


漏洞简介

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

影响版本

fofa语法

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

漏洞分析

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

跟进GetInquiryData方法

public List<BusinessPriceList.BusinessPrice> GetInquiryData(string empID)
{
  DbHelperSql dbHelperSql = new DbHelperSql(UserCookie.GetCookieValue("corpId"));
  List<BusinessPriceList.BusinessPrice> inquiryData = new List<BusinessPriceList.BusinessPrice>();
  string str = $"  select  top 10  d.ItemNo, M.FID,CustFID,CreateDate,TotProdAmt ,CUR,PriceItem,D.BoxQty  from scCQ  M INNER JOIN scCQDtl D ON M.FID=D.MFID  where  1=1  and  IsNull(M.IsDeleted,0)<>2      and D.ItemNO='{this.itemNo}'";
  if (!new CreatePageDao().CheckEmpIsAdminUser(empID))

参数itemNo未过滤或校验就被直接拼接进SQL语句执行,从而造成SQL注入漏洞。

同样我们的老演员empID也是如此,跟进CheckEmpIsAdminUser方法看下

public bool CheckEmpIsAdminUser(string EmpID)
{
  bool flag = false;
  DataTable dataSource = this.GetDataSource($"SELECT  dbo.fnCheckEmpIsAdminUser('{EmpID}') ");
  if (dataSource != null && Convert.ToBoolean(dataSource.Rows[0][0].ToString()))
    flag = true;
  return flag;
}

也是朴实无华的参数直接拼接SQL语句执行,造成的SQL注入漏洞。

漏洞复现

GET /m/Dingding/Product/BusinessPriceList.aspx?itemNo='SQLI_POC-- HTTP/1.1
Host: fumacrm.mrxn.net
Cookie: UserCookie={"empId":"admin","corpId": "1"}

成功延时 4 秒


手机扫码阅读

天地伟业Easy7 /Easy7/rest/file/uploadFile 文件上传漏洞

孚盟云CRM BusinessPrice.aspx SQL注入漏洞

评 论
avatar
xilaile
源码可以分享吗大佬
4 个月前 回复
avatar
Mrxn
@xilaile:查看邮箱
4 个月前 回复
avatar
xilaile
@Mrxn:感谢
4 个月前 回复