Dolibarr任意上传危险文件漏洞

厂商
产品 Dolibarr
受影响的版本 11.0.4及之前版本
测试版本 11.0.4
漏洞发现日期 2020-6-16
厂商通知日期 2020-6-16
预警公告日期 无【无技术细节】
厂商确认日期
厂商修复日期 11.0.5
公开披露日期 2020-9-25
最新修正日期 2020-9-25
CVE ID CVE-2020-14209
产品描述 Dolibarr ERP / CRM是一个开源的免费软件包,适用于中小型企业,基金会或自由职业者。它包括企业资源规划(ERP)和客户关系管理(CRM)的不同功能,还包括不同活动的其他功能。
发现者 Andrea Gonzalez, 安全研究员和渗透测试员 @wizlynx group

漏洞描述

任意上传危险文件漏洞
严重程度: CVSS 分数: 8.8 CWE-ID: CWE-434 状态: 未修复
漏洞详情
Dolibarr 11.0.4及更早版本允许低权限用户上传危险类型的文件,这可能导致在脆弱的应用程序中执行任意代码。
CVSS基准分
攻击媒介 网络 范围 变化
攻击复杂度 保密性影响
所需特权 一致性影响
用户互动 可用性影响

POC


经过身份验证的用户可以上传包含代码的文件,并在服务器端执行这些操作,因为黑名单用于检测和重命名带有危险文件扩展名的文件,但是黑名单不包括在Apache中使用默认配置时被解释为代码的通用扩展名。

 

已经开发和测试了两种开发方法:

 

文件扩展名黑名单绕过 htaccess文件上传

 

该方法已使用没有任何权限的用户进行了测试:

 

 

每种方法的详细信息如下:

 

绕过黑名单的文件扩展名

 

要求:

 

上传文件的目录必须位于Web服务器的文档根目录内,且没有访问限制。

 

Web服务器必须能够执行未列入黑名单的文件(这是Apache的默认配置)。

 

测试环境: 使用默认配置运行Apache 2.4.25的Debian 9.12。

 

Dolibarr版本11.0.4。

 

上传文件时,文件扩展名黑名单用于确定文件是否有可执行代码,在这种情况下,文件名将附加“ .noexe”扩展名。在9.0.4版本之前,与最新版本相比,黑名单更为宽松。最新版本11.0.4使用函数isAFileWithExecutableContent来评估文件名是否具有危险的扩展名。

 

下图显示了Dolibarr 11.0.4版中fie /htdocs/core/lib/functions.lib.php的内容

 

 

正确显示允许使用“ .pht”,“。phar”和“ .shtml”之类的扩展名,Apache 2.4.25的默认配置将“ .pht”文件作为PHP脚本执行:

 

 

同样,Apache 2.4.41默认执行“ .pahr”文件:

 

 

如下所示,不允许用户在用户个人资料的“链接文件”部分上传文件。

 

 

但是,以下请求可以绕过文件上传限制(此漏洞也已报告给Dolibarr,称为“垂直特权升级– WLX-2020-011 ”)。正在上传文件“ 0wkenzqk.pht”,其中包含一个PHP Webshel​​l:

 

 

该文件已成功上传,并且其扩展名未修改:

 

 

上传的文件默认存储在/ documents / users / <user_id> /目录中,可以如下所示执行webshel​​l:

 

htaccess文件上传

 

要求:

 

上传文件的目录必须在Web服务器的文档根目录中。  

 

Web服务器必须是启用了htaccess的Apache。

 

测试环境:

 

Debian 9.12在启用htaccess的情况下运行Apache / 2.4.25。

 

Dolibarr版本11.0.4。

 

如先前方法中所示,将上传一个PHP文件,该文件将附加“ .noexe”扩展名:

 

 

可以上传htaccess文件,以授予对用户文件上传目录的访问权限,并使扩展名为“ .noexe”的文件可执行为PHP文件。以下屏幕截图显示了正在上传的htaccess文件,请注意文件名是“ htaccess”,该应用程序不允许以点(。)开头的文件被上传。

 

以下屏幕截图显示了上传htaccess文件的请求。

 

 

htaccess文件需要重命名为“ .htaccess”,这可以利用文件重命名功能来完成:

 

 

用户上传的以“ .noexe”结尾的任何文件现在都可以执行:

 

 

 

最新帖子

官网首页        Dolibarr任意上传危险文件漏洞
浏览量:0
收藏