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
在这里插入图片描述
在对应cve目录下编译运行环境
在这里插入图片描述
环境启动后,访问 http://127.0.0.1:8080/ 将会看到drupal的安装页面,一路默认配置下一步安装。如果没有mysql环境,所以安装的时候可以选择sqlite数据库。
在这里插入图片描述
管理员修改资料处上传头像
在这里插入图片描述
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/[图片名字]
在这里插入图片描述
访问 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
在这里插入图片描述
保存后将触发该漏洞,触发成功。这里列举出了/etc/passwd,证明是可以执行命令的
在这里插入图片描述
分析了一下poc,好像是通过反序列化对该命令进行的执行。
通过管理页面存在的操作函数参数可控,把参数设置为 phar://上传文件名 即可导致命令执行。利用这种方法可以在不使用unserialize()函数的情况下触发PHP反序列化漏洞。漏洞触发是利用Phar:// 伪协议读取phar文件时,会反序列化meta-data储存的信息。

我们可以尝试替换一下,比如ps -aux,此时是7个字节数,但是要记得把s对应的字节数目改成7
在这里插入图片描述
 
GOT IT!

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值