このブログは、N高等学校とVRChatの世界からやってきた株式会社ArmorisアルバイトのShaderoが書いています。 あるもりすぶろぐの内容は個人の意見です。
今回はBurp Suiteの基本的な使い方を学習するために、非常に簡単に再現が行えるCVE-2020-24389を検証してみました。Burp Suiteを用いた検証の大まかな流れや、後述するProxy機能の便利さなどが伝われば幸いです。
Burp Suiteとは
脆弱性検証でよく使われているローカルプロキシツールです。本記事で使う無償のCommunity Edition以外に、有償のProfessionalやEnterpriseがありますが、本記事で使うProxy機能は無償版でも使えます。
検証環境
本記事は以下の環境を使用しています。
Name | Version |
---|---|
Windows10 Pro | 21H1 |
Burp Suite Community Edition | v2021.6.2 |
インストール
まずはBurp Suiteをインストールします。公式サイトより「Burp Suite Community Edition」を選択し、インストーラーをダウンロードしてインストールしてください。
起動~通信履歴の観覧
Burp Suiteを起動すると、Project選択画面が表示されます。 本エディションの場合「Temporary project」しか選べないため、そのまま次に進んでください。
次にBurp Suiteの設定を選択する画面が表示されます。 過去にBurp Suiteをインストールしていてコンフィグファイルをエクスポートしていた方などはここで読み込むことが出来ますが、今回は「Use Burp defaults」を選択し「Start Burp」をクリックします。
Startすると以下の画面が表示されます。
ツールバーの下にある「Proxy」をクリックすると以下の画面が表示されます。この画面を使って通信の改竄や通信履歴の観覧を行います。自分のブラウザにプロキシを設定してサイトにアクセスする方法もありますが、今回はBurp suiteに組み込まれているブラウザを使って通信履歴の観覧を行います。
「Intercept is on」と書かれている青いボタンをクリックし「Intercept is off」にします。オンにしたままにすると通信内容の改竄が出来るのですが、ここでは改竄は行わずに通信履歴を観覧したいためオフにします。
その後「Open Browser」をクリックし、立ち上がったブラウザを使って任意のWebサイトにアクセスしBurp Suiteにある「HTTP history」をクリックすると通信履歴が表示されます。ヤッタネ!(画像はGoogle.comにアクセスした際の履歴)
実際にWordpressのプラグインの脆弱性検証をする(CVE-2020-24389)
ここでは実際にWordpressのプラグインの脆弱性を検証してみます。この脆弱性は一部のファイル拡張子が無効化されていなかったため、任意のPHPコードがアップロード出来てしまう脆弱性です。
Wordpressサーバー環境
Name | Version |
---|---|
Ubuntu | 20.04 |
Wordpress | 5.5.1 |
Contact Form 7 | 5.2.1 |
Drag and Drop Multiple File Upload - Contact From 7 | 1.3.5.1 |
やってみる
今回は通信の改竄を行うので「Intercept is on」と書かれている青いボタンになっているか確認します。「on」になっていない場合はクリックしてオンにしてください。
「Open Browser」をクリックし、立ち上がったブラウザで該当のWordPressのサイトにアクセスすると、Burp Suiteの方で通信を改竄する画面が表示されますが、ここは何もせず「Forward」をクリックします。
該当のサイトが表示されたら任意のpngをドラッグアンドドロップでアップロードします。ここで通信内容を改竄して画像ファイルではなくPHPコードをアップロードさせます。
以下は実際に改竄を行うリクエストの画像
jpg|jpeg|JPG|png|gif|pdf|doc|docx|ppt|pptx|odt|avi|ogg|m4a|mov|mp3|mp4|mpg|wav|wmv|xls
と書かれている所をphar
に、filename="(任意の名前).png"
をfilename="(任意の名前).phar"
に、Content-Type: image/png
より下、------WebKitFormBoundary………
云々より上の文字列をアップロードさせたいPHPのコード(ここではwebshellのコードを使用)に書き換えて「Forward」をクリックすると任意のPHPコードがアップロードされます。
「(WordpressのIPアドレス)/wp-content/uploads/wp_dndcf7_uploads/wpcf7-files/」にアクセスすると先程のPHPファイルが実際にアップロードされているのが確認できます。
実際にそのPHPファイルにアクセスすると実行することも出来ました。
最後に
今回初めてBurp Suiteを使ってみましたが、GUIで視覚的に分かりやすく簡単に通信の流れが確認できる上に通信内容を書き換える事が出来てとても便利でした。有償のProfessional版はこれらの無償版の機能に加えて脆弱性スキャン機能やプロジェクト保存機能などもありますが、個人で軽く使う分には無償のCommunity Editionでも問題ないと思います。Proxy機能とても便利なのでぜひ使ってみてください!