CVE-2019-6340 Drupal8's REST RCE 漏洞复现

0X1 漏洞概述

Drupal官方之前更新了一个非常关键的安全补丁,修复了因为接受的反序列化数据过滤不够严格,在开启REST的Web服务拓展模块的情况下,可能导致PHP代码执行的严重安全。

根据官方公告和自身实践,8.6.x或(<8.6.10)两种情况可能导致问题出现:

  • RESTful Web Services拓展开启,并且启用了REST资源(默认配置即可),不需要区分GET,POST等方法即可完成攻击。
  • JSON:API服务模块开启,此服务尚未分析。

漏洞影响版本:

Drupal < 8.6.10  Drupal < 8.5.12

0X2 环境搭建

使用search‍‍命令进行查找:

 docker search CVE-2019-6340

然后拉取第一个镜像,使用pull命令

 docker pull knqyf263/cve-2019-6340

最后等到拉取完成

然后启动镜像,运行环境

docker run -d -p 80:80 --name Drupal8  knqyf263/cve-2019-6340

访问网站首页

0X3 漏洞利用

在github上可以找到关于此CVE漏洞编号的很多脚本,但是用法不一,因此,我们使用rapid官方给出的脚本进行测试。在kali下将metasploit更新到最新,使用模块:

 use exploit/unix/webapp/drupal_restws_unserialize

设置RHOSTS参数和LHOSTS参数

然后攻击即可从容器中成功返回shell连接

0X4 漏洞修复

  • 升级到最新版本
  • 禁用 RESTful Web Services 模块
  • 配置服务器不允许 POST/PATCH 请求

0X5 参考文献

https://paper.seebug.org/821/

https://www.rapid7.com/db/modules/exploit/unix/webapp/drupal_restws_unserialize