0x01 系统漏洞详细介绍

Drupal是一个开源系统內容智能管理系统(CMS),全世界超出一百万个网址(包含政府部门,电子器件零售,企业的管理,金融企业等)应用。两个星期前,Drupal安全性精英团队公布了一个十分重要的系统漏洞,序号CVE-2018-7600 Drupal对表单要求內容未做严苛过虑,因而,这促使攻击者很有可能将故意引入表单內容,此系统漏洞容许没经身份认证的攻击者在默认设置或普遍的Drupal安裝上实行远程控制程序运行。

0x02 系统漏洞剖析

Drupal3D渲染数字能量数组的状况有页面加载和Ajax表单传出的要求,在这儿Ajax API启用是攻击者最好的挑选。那麼做为会员注册表单的一部分,照片字段名应用Ajax API将上传图片到网络服务器,而且转化成缩列图

  CVE 2018 7600 Drupal核心远程代码执行漏洞分析 cms Php  第1张

 

查看了有关档案文件如今,大家所需做的便是引入一个故意3D渲染数字能量数组,该数字能量数组应用Drupal的3D渲染回调函数方式在系统软件上实行编码。几个特性我们可以引入:

CVE 2018 7600 Drupal核心远程代码执行漏洞分析 cms Php  第2张

 

#access_callback 标识尽管callback回调函数可控性,但必须回调函数解决的字符串数组不可控性,造成 没法运用。下列情景以post_render和lazy_builder为例子

2.1、系统漏洞情景1:引进#post_render

#post_render

这一API标识能够被全部的原素和表单应用,它是在drupal_render()方式中启用,能够3D渲染当今原素和子原素,也可对內容开展改动。

CVE 2018 7600 Drupal核心远程代码执行漏洞分析 cms Php  第3张

事例中$ element根据启用admin_form_html_cleanup涵数解决回到解决后的結果。再看来能够开启进攻荷载的编码,在3D渲染的全过程中启用了call_user_func开展回调函数解决,但$callable 回调函数根据表单仿冒,$elements的子原素一样也是根据表单可控性

CVE 2018 7600 Drupal核心远程代码执行漏洞分析 cms Php  第4张

攻击者运用进攻荷载 mail[#post_render][]=passthru&mail[#type]=markup&mail[#markup]=whoami ,这儿的#markup是当今原素#type的子原素,根据数字能量数组的方法传到值,实行全过程如图所示

CVE 2018 7600 Drupal核心远程代码执行漏洞分析 cms Php  第5张

魔术师方式__toString获得$this->string 相当于whoami ,带到到call_user_func中交到passthru涵数实行,造成 系统漏洞开启

CVE 2018 7600 Drupal核心远程代码执行漏洞分析 cms Php  第6张

PHP内嵌涵数pasthru实行之后回显結果

CVE 2018 7600 Drupal核心远程代码执行漏洞分析 cms Php  第7张

2.2、系统漏洞情景2:引进#lazy_builder

#lazy_builder 可选,数字能量数组值,务必有且只有2个原素,一个是回调函数名,一个回调函数的主要参数,主要参数只有是NULL或是标量种类

CVE 2018 7600 Drupal核心远程代码执行漏洞分析 cms Php  第8张

$callable自变量取#lazy_builder原素标识数组下标0的值做为回调函数名,取数组下标1的划来回调函数方式的主要参数, 下边进攻荷载启用PowerShell 远程管理文档到当地储存为php网页页面侧门,编码如下图

CVE 2018 7600 Drupal核心远程代码执行漏洞分析 cms Php  第9张

CVE 2018 7600 Drupal核心远程代码执行漏洞分析 cms Php  第10张

 

大家传到的lazy_builder[0]和lazy_builder[1]的值在3D渲染的情况下用call_user_func_array进行全部进攻全过程

CVE 2018 7600 Drupal核心远程代码执行漏洞分析 cms Php  第11张

全部系统漏洞的造成全过程都是由于call_user_func或是call_user_func_array等回调函数造成 的随意程序运行,API原素标识中很有可能还会继续开启系统漏洞的标识有#theme 、#create_placeholder、#theme_wrappers这些。

0x04 减轻对策

官方网在最新版8.5.1中提升了下面的图方式

CVE 2018 7600 Drupal核心远程代码执行漏洞分析 cms Php  第12张

对要求的GET、POST、COOKIE 开展过虑解决

CVE 2018 7600 Drupal核心远程代码执行漏洞分析 cms Php  第13张

期待众多客户尽早升級到最新版Drupal 8.5.1 , 下载链接:https://www.drupal.org/project/drupal/releases/8.5.1

 

0x05 Reference

https://research.checkpoint.com/uncovering-drupalgeddon-2/

https://github.com/g0rx/CVE-2018-7600-Drupal-RCE/blob/master/exploit.py