Dolibarr ERP CRM < v7.0.3代码注入漏洞分析

liudao  2364天前

图片.png


0x00 漏洞影响分析


关于Dolibarr这次产生的漏洞,版本比7.0.3老的系统都会受影响。

攻击者可利用此漏洞在网站服务器插入木马后门,从而控制服务器。会对用户重要数据和内网安全造成重大威胁。

建议及时修复,修复方案下面已给出。

exploit-db地址:

 https://www.exploit-db.com/exploits/44964/

0x01 Dolibarr简介


Dolibarr 是一款开源的企业ERP和CRM管理软件,拥有一个活跃的用户社区,商业模式类似苹果iTunes应用商店。在FOFA上搜了一下大概有2.7k+用户。

图片.png


0x02代码注入漏洞分析


昨天看到exploit-db上发的,然后想在FOFA上提交个POC,发现直接用exploit-db的POC复线不了,来胡乱分析一下。先看下exploit-db上的介绍,然后点击‘下一步’来创建配置文件‘conf.php’,然后向/install/step1提交POST请求,再去访问check.php。大概意思是,把POST的db_name参数写入到配置文件'conf.php',然后'check.php'应该是包含了'conf.php',触发漏洞。

图片.png

这里我试了下跳过安装步骤,直接访问step4.php,发现好多老版本是可以直接进行第4步创建后台用户密码的,官方只是在后台提醒了下

图片.png

吐槽下, 为什么不在安装后自动加锁。还有国外90%Dolibarr都把install删除了,国内使用的Dolibarr70%是没有删除install的。安全意识差异可见一斑。

图片.png

直接进入到POST提交数据,刚代码,step1.php里有一个$error变量,初始值为0,这里会验证$error的值,不能大于0

图片.png

第一个条件如下图代码,提交的参数除了数据库密码外不能为空,否则error会大于0,报错,这个很好满足

图片.png

第二个条件,必须能包含$main_dir."/core/db/".$db_type.'.class.php',这里$main_dir用户可控,$db_type用户也可控,$main_dir在exploit-db是文件根路径,但在实际中很难知道根目录,但相对路径是不变的,所以这里我试了一下,可以用"../"来跳目录,实现包含。$db_type这个是数据库类型,没啥要改的。

图片.png图片.png

第三个条件,看下面代码,可以选择创建数据库或选择已有数据库,条件是必须可以根据用户提交的数据库地址,端口,用户,密码等信息连到数据库,否则$error++,这个条件需要一个公网的MySQL数据库。

图片.png图片.png

这里可以看到把db_name转义掉单引号后写入conf.php中了,漏洞出现在这部分,只是转义单引号,如果提交" \' "的话,就会插入" \' ",还是出现闭合情况,导致代码注入。

图片.png图片.png

伪造下POST请求

图片.png

然后查看conf.php,发现写入了的代码

图片.png

查看check.php,这里$conffile是conf.php,可以看到包含了conf.php文件

图片.png

到这里,复现成功


0x03 后记


建议:

  • 单个字符转义可以绕过,可以用addslashes对用户提交数据进行处理。
  • 可以部署waf等防护设备,对一些敏感数据进行过滤。
  • 目前官方已修复该漏洞,可以去gayhub下载最新版。

    https://github.com/Dolibarr/dolibarr
    

求轻点喷!


最新评论

LubyRuffy  :  几个问题: 一)**修没修?**应该是修了的:**s://github.com/Dolibarr/dolibarr/issues/9032 二)是不是攻击后人家的网站就打不开了?好像是 三)exploit-db的原文地址为什么不放出来?**s://**.exploit-db.com/exploits/449**/
2364天前 回复
liudao  :  **修了,安装好之后install直接给**掉了,被攻击之后数据库改了网站肯定炸了
2364天前 回复
垰-垰-  :  **没修复?
2362天前 回复
垰-垰-  :  **已修复,可以去github下载最新版。
2362天前 回复
昵称
邮箱
提交评论