Drupal远程代码执行(CVE-2019-6339)——Dcoker复现

该漏洞概述

漏洞简介

Drupal core是Drupal社区所维护的一套用PHP语言开发的免费、开源的内容管理系统。
Drupal core 7.62之前的7.x版本、8.6.6之前的8.6.x版本和8.5.9之前的8.5.x版本中的内置phar stream wrapper(PHP)存在远程代码执行漏洞。

影响版本

Drupal core 7.62之前的7.x版本、8.6.6之前的8.6.x版本和8.5.9之前的8.5.x版本

危害

远程攻击者可利用该漏洞执行任意的php代码。
 

漏洞复现

采用的是vulhub的镜像进行复现的地址 https://vulhub.org/#/environments/drupal/CVE-2019-6339/
先开启docker
Drupal远程代码执行(CVE-2019-6339)——Dcoker复现_第1张图片
在对应cve目录下编译运行环境
Drupal远程代码执行(CVE-2019-6339)——Dcoker复现_第2张图片
环境启动后,访问 http://127.0.0.1:8080/ 将会看到drupal的安装页面,一路默认配置下一步安装。如果没有mysql环境,所以安装的时候可以选择sqlite数据库。
Drupal远程代码执行(CVE-2019-6339)——Dcoker复现_第3张图片
管理员修改资料处上传头像
Drupal远程代码执行(CVE-2019-6339)——Dcoker复现_第4张图片
POC
①https://github.com/thezdi/PoC/blob/master/Drupal/drupal_xss_rce.zip
②也可以采用该cve目录下的blog-ZDI-CAN-7232-cat.jpg
在这里插入图片描述
上传头像+保存之后。查看一下上传的图片的地址
Drupal的默认文件保存地址是/site/default/files/pictures/xxx-xxx/[图片名字]
Drupal远程代码执行(CVE-2019-6339)——Dcoker复现_第5张图片
访问 http://127.0.0.1:8080/admin/config/media/file-system,在 Temporary directory 处输入之前上传的图片路径,示例为 phar://./sites/default/files/pictures/2020-06/blog-ZDI-CAN-7232-cat.jpg
Drupal远程代码执行(CVE-2019-6339)——Dcoker复现_第6张图片
保存后将触发该漏洞,触发成功。这里列举出了/etc/passwd,证明是可以执行命令的
Drupal远程代码执行(CVE-2019-6339)——Dcoker复现_第7张图片
分析了一下poc,好像是通过反序列化对该命令进行的执行。
通过管理页面存在的操作函数参数可控,把参数设置为 phar://上传文件名 即可导致命令执行。利用这种方法可以在不使用unserialize()函数的情况下触发PHP反序列化漏洞。漏洞触发是利用Phar:// 伪协议读取phar文件时,会反序列化meta-data储存的信息。

我们可以尝试替换一下,比如ps -aux,此时是7个字节数,但是要记得把s对应的字节数目改成7
Drupal远程代码执行(CVE-2019-6339)——Dcoker复现_第8张图片
 
GOT IT!

 
******************************************************
小实验小结,具体测试利用方式需根据具体实践场景~

你可能感兴趣的:(Web安全攻防,Vulhub漏洞复现,drupal,安全漏洞)