BurpSuiteのExtension「Param Miner」で隠しパラメータを検出する

キャッシュポイズニング等の脆弱性を確認する際に、BurpSuiteのExtention「Param Miner」を使ったので、使用方法の備忘録です。
 
 

Param Minerの概要と導入方法

Param Minerは、通常の通信では利用されていないパラメータ等を検出する機能を持つBurpSuiteのExtentionです。
一般的によく使われるパラメータのリストを送信していき、レスポンスに変化があればそのパラメータを検出するというロジックとなっています。
キャッシュポイズニング(web cache poisoning)という脆弱性を発見するのに応用することもできます。
 
関連技術の説明ページ ・キャッシュの概要
 
インストールはBurpSuiteを起動し、「Extensions」タブの「BApp Store」からインストールできます。

Param Minerのの使い方

以降ではParam Minerの使い方を具体例で説明するために、検証ラボ「Lab: Web cache poisoning with an unkeyed header」の通信を例に手順を記載しています。
 
検証ラボのホーム画面へアクセスすると、以下のようなHTTPリクエストが送信されます。
 
Proxyタブで上記の通信を右クリックし、以下の流れでボタンをクリックします。
「Extensions」 → 「Param Miner」 → 「Guess Params」 → 「Guess everything!」
 
詳細設定画面が表示されます。特別な設定が必要なければそのまま「OK」をクリックすることで、スキャンが開始されます。
 

検出結果の確認方法

Extensionタブの中にあるIndtalledタブから結果を確認できます。
下図のように「Param Miner」を選択すると「Output」タブにて、検出したパラメータが表示されます。
今回の例では、メッセージ「Indentified parameter on〜」の行を内容より、通常のリクエストでは使われていなかった「x-forwarded-host」ヘッダと「origin」ヘッダがレスポンスに影響を与えるパラメータとして検出されていることが分かります。
 
また、Professional(有料版)のBurpsuiteを使っている場合は、dashuboardタブのIssueの一覧にも「Secret input: header」等として検出内容が表示されます。