漏洞简介
用友U8 CRM客户关系管理系统是一款专业的企业级CRM软件,旨在帮助企业高效管理客户关系、提升销售业绩和提供优质的客户服务。用友 U8 CRM客户关系管理系统 objectview.php 文件存在SQL注入漏洞,未经身份验证的攻击者通过漏洞执行任意SQL语句,调用xp_cmdshell写入后门文件,执行任意代码,从而获取到服务器权限
影响版本
V18, V16.5, V16.1, V16.0, V15.1, V13
fofa语法
title="用友U8CRM"
漏洞分析
根据官方漏洞通告

可知漏洞原因为sql注入导致的命令注入攻击。
那直接看 U8SOFT/turbocrm70/code/www/pub/objectview.php 修复前后的差异

可以看到修复版本是对 getRealID 方法增加了更安全的参数化处理sql语句,那直接看有那里调用了 getRealID 方法,找到如下调用
function getRealID($ID){
$realID = $ID;
global $gblDB;
$sql="select account_id from tc_account where cLtcCustomerCode='$ID' and account_id <> cLtcCustomerCode";
$rs = $gblDB->query($sql);
if ($rs && $rs->fetchRecord())
{
$realID=$rs->getFieldValueByName("account_id");
}
$rs->close();
return TRegisterID($realID);
}
......
$ObjType = TGetRequest("ObjType");
$ID = TRegisterID(TGetRequest("ID"));
if($ObjType == 1){
$ID = getRealID(TGetRegID($ID));
}
可以看到没有修复之前是当 ObjType=1 时, getRealID 方法是直接将 $ID 拼接进sql语句中,无任何过滤和校验,造成sql注入漏洞。
漏洞复现
GET /pub/objectview.php?DontCheckLogin=1&ObjType=1&ID=1' HTTP/1.1
Host: u8crm.mrxn.net
参考
https://security.yonyou.com/#/patchInfo?identifier=dbed49af1ced41e89fcc67d35e5df6c9


