零基础玩转bWAPP靶场(六十三):Drupal SQL Injection (Drupageddon)

发布时间:2026/10/7 10:56:19

零基础玩转bWAPP靶场(六十三):Drupal SQL Injection (Drupageddon) 摘要DrupageddonCVE-2014-3704是 Drupal 7.x 核心的一个致命 SQL 注入漏洞攻击者无需登录就能执行任意 SQL 语句进而接管整个网站。bWAPP 的这一关并不在自身代码里而是链接到一个真实存在漏洞的 Drupal 站点让你在隔离环境中体验这个“史诗级”漏洞。本篇会带你确认目标、理解漏洞背景、分析源码、用现成脚本轻松拿下管理员并聊聊真实世界中它造成的巨大破坏。文章不啰嗦直接上干货。一、找目标确认 Drupal 版本进入 bWAPP 的“Drupal SQL Injection (Drupageddon)”页面你会看到一段英文提示“The Drupal version is vulnerable to SQL injection! (bee-box only)”一个链接指向../drupal/点击会打开一个 Drupal 站点还有一个 CVE 编号链接CVE-2014-3704点击链接打开 Drupal 首页拉到页面底部通常能看到“Powered by Drupal”。如果是 7.31 或更低版本目标就存在漏洞7.32 及以上已修复。bee-box 镜像自带的 Drupal 正是 7.31专门用来练习。你也可以用 curl 确认版本curl -s http://目标IP/drupal/CHANGELOG.txt | head -n 5二、前言Drupageddon 是什么2014 年 10 月安全公司 SektionEins 发布公告披露 Drupal 7.x 的数据库抽象层存在一个严重的 SQL 注入漏洞。由于 Drupal 在政府、教育、企业等领域使用极广且漏洞利用极其简单无需认证整个安全圈震动给它起了个末日风的名字——Drupageddon。漏洞本质Drupal 的数据库层在处理带占位符的查询时如果参数是一个数组会有一个函数对数组的键名进行正则替换但键名没有经过转义。攻击者可以构造包含特殊字符的数组键名让替换后的 SQL 语句被注入任意代码。真实世界影响漏洞公开后几小时内互联网上就出现了大规模自动化攻击。攻击者批量扫描 Drupal 站点利用漏洞修改管理员密码、植入后门、挂黑链 SEO 页面。事后统计超过 100 万个 Drupal 网站在数周内被攻陷。一些知名机构也中招包括部分政府网站和大学网站。白宫官网当时也受到大量扫描虽然最终没有被入侵但足以说明漏洞的恐怖程度。三、关卡介绍bWAPP 只是一个“路标”bWAPP 这一关本身没有漏洞代码它只是一个指向外部 Drupal 环境的入口。主要内容是显示标题和说明文字提供链接跳转到 Drupal 站点给出 CVE 编号提示也就是说bWAPP 的安全等级设置对这个漏洞不起作用。无论你选择 low、medium 还是 highDrupal 站点本身并不会改变。所以这一关的“低中高”更多是指你的利用手法从简单到深入。四、源码分析真正的漏洞在 Drupal 核心里bWAPP 的源码没太多可看我们直接看 Drupal 的漏洞代码。文件位置在 Drupal 安装目录下includes/database/database.inc找到expandArguments方法在DatabaseConnection类中简化后的关键代码protected function expandArguments($query, $args) { $modified FALSE; foreach ($args as $key $data) { if (is_array($data)) { $new_keys array(); foreach ($data as $i $value) { $new_keys[$key . _ . $i] $value; } $query preg_replace(# . $key . \b#, implode(, , array_keys($new_keys)), $query); unset($args[$key]); $args $new_keys; $modified TRUE; } } return $modified; }问题就出在preg_replace(# . $key . \b#, ...)这一行。$key是数组的键名攻击者可以控制它。如果键名里包含正则表达式的特殊字符比如|、\、(等preg_replace的行为就会变得不可预测。更关键的是这个替换发生在 SQL 语句已经被构建之后、执行之前所以攻击者可以通过巧妙构造键名把原始的 SQL 语句改写成恶意 SQL。官方修复Drupal 7.32就是对这个键名进行转义$new_key str_replace(\\, \\\\, $key); $query preg_replace(# . $new_key . \b#, ...);多了一行str_replace漏洞就被封堵了。可见这个漏洞多么“微小”却又致命。五、用公开 exploit 一键拿下管理员对于初学者最简单的办法是使用公开的 Python 脚本。推荐drupageddon.py。步骤 1下载脚本在 Kali 或任意有 Python 的机器上https://github.com/Neldeborg/Drupalgeddon-Python3 https://raw.githubusercontent.com/Neldeborg/Drupalgeddon-Python3/main/drupalgeddon.py步骤 2运行脚本假设 Drupal 站点地址是http://10.0.0.177/drupal/执行python3 drupageddon.py -t http://10.0.0.177/drupal/ -u adminhack -p Hack123456参数说明-t目标站点 URL必须带 http://-u自定义新增管理员用户名-p自定义新增管理员密码成功输出示例步骤 3登录 Drupal 后台浏览器访问http://10.0.0.177/drupal账号adminhack密码Hack123456登录后台后你完全控制了整个 Drupal 站点可以添加用户、管理用户、安装模块、修改内容、甚至写入 webshell。至此Low 级别通关完成。六、真实世界案例一场互联网“浩劫”2014 年 10 月 15 日Drupal 官方发布安全公告同时 SektionEins 公开漏洞细节。随后几个小时内全网出现大量扫描和攻击流量。攻击者主要做三件事批量重置管理员密码很多网站管理员发现自己无法登录或收到异常密码重置邮件。植入后门和 Webshell攻击者上传 PHP 后门保持长期访问为后续攻击做跳板。挂黑链做 SEO大量被入侵的网站被插入隐藏链接指向赌博、色情、诈骗网站严重影响网站信誉。根据安全公司 Sucuri 的报告到 10 月底超过 100 万个 Drupal 网站被感染。一些知名受害者包括美国陆军网站部分子域名被篡改英国政府网站数据被窃取多个大学和医院网站被植入恶意代码白宫官网whitehouse.gov遭受大量扫描尝试虽然最终未被攻破但说明攻击者将其作为高价值目标这次事件给所有使用开源 CMS 的机构敲响了警钟补丁管理必须及时漏洞生命周期以小时计算。七、总结Drupageddon 是 Web 安全史上一个标志性事件。通过 bWAPP 的这一关我们亲手复现了这个“超级漏洞”了解了漏洞背景和真实影响分析了 Drupal 核心expandArguments函数的问题用公开脚本轻松拿下管理员探讨了手工利用和深入利用的思路明白了防御的唯一正解升级通关标准你能成功利用脚本重置管理员密码并登录 Drupal 后台同时能解释为什么preg_replace那一行会导致注入。重要声明本教程及文中所有操作仅限于合法授权的安全学习与研究。作者及发布平台不承担因不当使用本教程所引发的任何直接或间接法律责任。请务必遵守中华人民共和国网络安全相关法律法规。如果这篇文章帮你解决了实操上的困惑别忘记点击点赞、分享也可以留言告诉我你遇到的其它问题我会尽快回复。你的关注是我坚持原创和细节共享的力量来源谢谢大家。
延伸阅读

更多相关文章

2026/9/26 18:04:44

基于微服务架构的在线学习平台设计与实现(源码+讲解视频+LW)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/9/25 21:07:37

基于微信小程序的高校浴室预约系统(源码+讲解视频+LW)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/10/7 10:56:00

诸暨有没有承接电梯广告业务的服务商

随着诸暨县域商业活力持续释放,政企公益宣传、地产项目推广、家居建材促销、教培机构招生、本地门店引流等各类宣传需求逐年上涨,电梯广告作为社区场景触达率最高的宣传渠道之一,凭借受众精准、曝光频次高、性价比突出等优势,成为…

2026/10/7 10:56:00

Altium Designer网络管理器:PCB后期GND/VCC批量优化实战

1. 为什么网络管理器是PCB后期优化的隐藏利器画过几块板子的人大概都有这种体会:原理图阶段网络命名随意,GND写成GND_1、GND_2,VCC分成VCC_3V3、VCC_5V、VCC_MAIN,等到PCB布局布线快收尾了,突然发现电源网络需要统一加…

2026/10/7 10:56:00

2026实力派!好用的降AI率平台实测,效率直接拉满!

2026 年 AI 论文写作工具的综合王者是 千笔AI,国内毕业全流程首选千笔AI;千笔以中文润色 降重双能与全流程闭环见长,深度适配高校规范与查重系统,AI 率控制行业领先。按需求选对工具,论文效率可提升70%-90%&#xff0…

2026/10/7 10:56:00

嵌入式求职全攻略:从岗位分层到面试通关的深度指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 10:56:00

StateFlow与SharedFlow实战:从原理到选型的Android协程热流指南

上个月重构一个搜索页,把 LiveData 换成 StateFlow 之后,代码量直接少了一半,而且再也不用纠结 setValue 到底该不该切主线程。StateFlow 和 SharedFlow 在协程生态里一直属于“看起来会用、但总差点意思”的那类组件——很多文章只告诉你 AP…

2026/10/7 10:50:49

D435i+IMU联合标定实战指南:ROS视觉惯性里程计精度基石

1. 为什么D435iIMU联合标定是ROS机器人开发绕不开的硬门槛? 在ROS机器人开发里,你可能已经调通了小车底盘、跑起了SLAM建图、甚至让机械臂抓起了水杯——但只要一上真实场景,定位就开始漂、轨迹就发散、建图就错层。这时候老手第一反应不是查…

2026/10/5 6:32:56

Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化

1. 从“Jev”说起:为什么我要把Agent接进浏览器“Jev”这个词最近在圈子里出现的频率越来越高,很多人第一次听到会以为是某个新模型的名字,其实它更像是一种思路——把Jev模型的能力当作底座,通过Agent的方式去接管浏览器&#xf…

2026/10/7 8:18:33

多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系

1. 从"单兵作战"到"集群协同":多智能体编排到底在解决什么问题如果你最近在折腾 Agent 相关的东西,大概率会有一种感觉:单个 Agent 能做的事情,其实很快就摸到天花板了。你给它一个提示词,挂几个工…

2026/10/6 17:46:51

无源低通滤波器设计实战:从RC到LC,手把手教你避开那些坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:05:03

ESP32免重刷固件:浏览器直接修改NVS键值实现WiFi配置更新

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:05:03

SAP HANA查询结果导出CSV:避开乱码、性能与权限的实用指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:05:03

数字后端Placement阶段Density与Congestion控制实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑