Drupal 远程代码执行漏洞(CVE-2019-6339)简单复现
漏洞简介:
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)存在远程代码执行漏洞。远程攻击者可利用该漏洞执行任意的php代码
影响版本:
Drupal core 7.62之前的7.x版本、8.6.6之前的8.6.x版本和8.5.9之前的8.5.x版本
环境搭建:
使用vulhub环境
进入目录
/root/vulhub/drupal/CVE-2019-6339
运行命令:docker-compose up -d
访问127.0.0.1:8080
进行CMF的安装,选择数据库时用sqlite数据库
漏洞利用:
Drupal 的图片默认存储位置为 /sites/default/files/pictures//,默认存储名称为其原来的名称,所以之后在利用漏洞时,可以知道上传后的图片的具体位置。
访问 http://127.0.0.1:8080/admin/config/media/file-system,在 Temporary directory 处输入之前上传的图片路径,示例为 phar://./sites/default/files/pictures/2020-03/blog-ZDI-CAN-7232-cat.jpg,保存后将触发该漏洞。如下图所示,触发成功。
上传POC头像
https://github.com/thezdi/PoC/blob/master/Drupal/drupal_xss_rce.zip
管理员修改资料处上传头像
http://x.x.x.x:8080/user/1/edit
设置临时目录
http://x.x.x.x:8080/admin/config/media/file-system
这里列举出了/etc/passwd,证明是可以执行命令的
简单分析了一下poc,然后修改一下
这里执行的是一条很简单的命令,稍微替换一下,比如ps -aux,此时是7个字节数,要把s对应的字节数目改成7
看一下结果
修复建议:
https://www.drupal.org/SA-CORE-2019-002。
升级Drupal至最新版本。