Drupal CVE-2018-7600远程代码执行漏洞利用详解

本文详细介绍了针对Drupal 7 CVE-2018-7600漏洞的Rust实现利用工具,该漏洞源于输入验证不当,允许攻击者通过构造特殊请求实现远程代码执行,包含完整的攻击流程和使用方法说明。

CVE-2018-7600 - Drupal 7远程代码执行

概述

这是一个针对易受攻击的Drupal 7安装的CVE-2018-7600漏洞的Rust实现利用工具。该漏洞利用Drupal在处理表单缓存时的缺陷,通过在POST请求中操纵form_build_id参数,当Drupal渲染缓存元素时,#post_render回调会执行攻击者控制的标记,从而实现命令执行。

技术描述

该Rust CLI工具针对目标Drupal 7网站执行两步攻击序列(投毒然后触发):首先发送请求参数,解析HTML响应获取form_build_id,然后触发file/ajax端点以执行攻击者指定的函数。

由于客户端禁用了证书验证(为了镜像原始PoC中传递verify=False的行为),该工具将适用于使用自签名或其他无效TLS证书的目标。如果您希望要求有效证书,可以在源代码中更改此行为。

使用方法

基本用法(默认命令为whoami,默认函数为passthru):

1
cargo run -- -u http://target.com/

运行自定义命令和函数:

1
cargo run -- -u http://target.com/ -c "whoami" -f "passthru"

使用HTTP/S代理(格式:http://127.0.0.1:8080/):

1
cargo run -- -u http://target.com/ -p http://127.0.0.1:8080/

CLI选项摘要:

  • -u, target:目标Drupal站点的URL(例如http://target.com/
  • -c, --command:在目标上执行的命令(默认:whoami
  • -f, --function:用作攻击向量的PHP函数(默认:passthru
  • -p, --proxy:用于路由请求的可选代理URL

完整攻击流程示例:

  1. 投毒user/password表单,插入包含命令的#post_render回调和#markup
  2. 解析响应以在form#user-pass中找到form_build_id
  3. ?q=file/ajax/name/#value/发送包含form_build_id的POST请求以触发渲染并执行命令

免责声明

此工具仅用于教育和授权的渗透测试目的。请负责任地使用,并且仅对您拥有或已获得明确权限的系统使用。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计