Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2018-7600 — 针对Drupal CVE-2018-7600远程代码执行漏洞的分步分析与利用实验,涵盖调试、漏洞利用代码及缓解补丁审查。 | Kitploit
工具/GitHubGitHub/raytran54/cve-2018-7600
漏洞分析代码分析漏洞利用Web应用程序漏洞利用学习与教育实验室与实践
GitHubraytran54/cve-2018-7600

CVE-2018-7600

针对Drupal CVE-2018-7600远程代码执行漏洞的分步分析与利用实验,涵盖调试、漏洞利用代码及缓解补丁审查。

查看仓库
32年前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

TRAN CONG DANH - SVTT - 导师:LUU VAN LAN - CVE-2018-7600 - 开始日期:26/06/2024.

目录:

  1. CVE 摘要
  2. 先决条件
  3. CVE 分析
  4. 缓解措施

CVE 摘要

  • 攻击者可以调用包含 call_user_func 这个自动执行函数的 Drupal Form API Ajax 请求
  • 受影响的 Drupal 版本:7.58 之前,8.x 在 8.3.9 之前,8.4.x 在 8.4.6 之前,8.5.x 在 8.5.1 之前

先决条件

  • 在本实验环境中,我使用:

    • Ubuntu 20.04( PHP 7.2, MariaDB )
    • 我在本实验中使用的 Drupal 版本是 8.3.8
    • 使用 Visual Studio Code 进行调试
    • 使用 Kali 23.4 运行 Drupal 漏洞利用

CVE 分析

  • 我们发现使用 call_user_func 的键有 #pre_render、#post_render、#access_callback、#submit、#lazy_builder、#validate image
  • 现在的任务是找出用户提交的参数中哪个包含 render(渲染),能够修改键,并接收到 #post_render 键,以便将其调用出来。 image
  • 当调整图片大小时,服务器会调用 Drupal API image
  • 这里的 &$array 函数是发送时默认元素的数组,让我们尝试在没有代码的情况下进行调试: image image
  • 假设你在上传时修改了 mail 的值: image image

image

  • 调用 getValue($array, $parents) 方法时,过程如下:

$ref 引用 $array。

第一次循环:$ref 引用 $array['a']。

第二次循环:$ref 引用 $array['a']['b']。

第三次循环:$ref 引用 $array['a']['b']['c']。

最终,$ref 将引用到值 42。

root@kitploit:~
$array = [
    'a' => [
        'b' => [
            'c' => 42
        ]
    ]
];
$parents = ['a', 'b', 'c'];
  • 从函数 getValue 接收到 $form 值后,$form 将成为 Render 函数的参数

image image image

  • call_user_func 的定义

image

  • 我使用漏洞利用文件时的结果:

image

缓解措施

  • 补丁 ** Drupal 开发者发布了一个补丁,添加了一个 RequestSanitizer 类,其中包含 stripDangerousValues 方法,用于删除数组中键以“#”开头的所有输入元素。该方法会清理 $_GET、$_POST 和 $_COOKIES 中的输入。

** Drupal 8.6.5 /core/lib/Drupal/Core/DrupalKernel.php image /core/lib/Drupal/Core/Security/RequestSanitizer.php image image ** stripDangerousValues 函数会逐一验证所有输入参数,输入数组中以“#”开头且未列入白名单的值会被移除。

下载工具