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」等として検出内容が表示されます。