TOUCH THE SECURITY Powered by Security Service G
こんにちは、セキュリティサービスGの「シン」です。
前回の第一回ではBurpのProxy機能について説明しました。初めてBurpのProxy機能を操作した方はこんな疑問を持った方もいたかと思われます。
同じURLに対して繰り返してHTTP通信を書き換えたいが、何度もブラウザからHTTP通信をBurpでキャプチャして書き換えするのが面倒、もっと効率いい方法が無いかと。
今回はそんな時に便利なBurpのRepeater機能について紹介したいと思います。
1.Repeater機能とは
Repeater機能とはブラウザ上から何度もHTTP通信をBurpでキャプチャせずに、効率よくHTTPリクエストを繰り返し送信できる機能です。
-
Proxy機能の場合
- ブラウザから操作して対象画面をBurpに向けてHTTPリクエストを送信
- Burpで通信をキャプチャし、通信内容を改竄してHTTPリクエストを送信
- WebサーバからのHTTPレスポンスがBurpに受信される
- 通信を改竄した結果がブラウザに表示される
-
Repeater機能の場合
- HTTPリクエストをBurpから直接送信
- WebサーバからのHTTPレスポンスがBurpに受信される
このようにRepeater機能はブラウザを操作しなくても効率よくHTTPリクエストを送信することができます。では、実際に操作してみましょう。
2.Proxy機能のHTTP historyからRepeater機能を利用する
Burpを起動。Burpのプロキシを設定したブラウザから対象URLにアクセスします。※事前準備は第一回目の「6.ブラウザのプロキシサーバの設定」を実施してください。
[Proxy]⇒[HTTP history]にアクセスしたHTTP通信が記録されます。[HTTP history]からRepeater機能を利用したい通信を選択し、右クリックから[Send to Repeater]を選択します。
[Repeater]⇒[Request]に選択したHTTP通信の内容が反映されます。[Raw]内を直接書き換えるかまたは、[Prams]タブを選択してリクエストパラメータ一覧が表示されるのでリクエストパラメータ一覧から内容を書き換えて[Go]ボタンを押下します。
[Response]タブにHTTPレスポンスが受信されます。[Request]タブに戻って[Go]ボタンを押下することで繰り返して実行できます。
3.Repeater機能から直接利用する
Proxy機能のHTTP historyからでなく、HTTPリクエストの内容がわかっていればコピーしたリクエスト内容を貼り付けて実行することもできます。
HTTPリクエストの内容をコピーした状態で、[Repeater]タブの[Request]タブ⇒[Raw]内がテキストエリアになっているので、キーボード操作の貼付または右クリックから[Paste]します。
HTTPリクエストの内容が反映されたら[Go]ボタンを押下するとポップアップがあがるので、対象サイトのHostとPortを入力してください。HTTPSを利用している場合はUse HTTPSにチェックを入れてください。編集したい場合は画面右上のエンピツマークのボタンから編集できます。
[Response]タブにHTTPレスポンスが受信されます。
Repeater機能の利用方法の説明は以上です。この機能を利用すればProxy機能よりも効率よくセキュリティチェックを行うことができます。
4.まとめ
第二回目はRepeater機能についての使い方を説明しました。
ただし、現時点で説明した方法は、”同じHTTPリクエストを繰り返し送信しても正しい結果が得られるリクエスト”である場合であり、サイトの作りによっては正しく利用できない場合があります。例えば以下のような場合です。- 一定時間の無操作でセッション状態が破棄される。
- 不正操作によりセッション状態が破棄される。
- 正しい画面遷移でアクセスしないとセッション状態が破棄される。
Repeater機能を利用している途中で、ログイン認証機能があるサイトではセッション状態が破棄されてログイン画面へリダイレクトされてしまうことや、エラー画面に遷移してしまい、正しいレスポンスが得られないことがあります。特に画面遷移状態をサーバ側でチェックしているサイトは最初からRepeater機能を利用しても正常なレスポンスが得られないと思います。
こんな時はどうすればよいか、次回以降ではセッション状態が破棄されずにRepeater機能を利用する方法と、画面遷移状態をサーバ側でチェックしているサイトに対して正しくRepeater機能を利用する方法をアップします。