Burpの使い方!


こんにちは、第二ソリューション開発部の谷口です。

受託開発の部署で開発を担当してます。

APIを扱う機会が多く、今回は通信内容を確認するためのローカルプロキシツール「Burp」について書かせて頂きます。

Burpとは

Webアプリケーション開発時の検証において、Webサーバとブラウザ間の通信内容を確認するケースがあると思いますが
このような時にローカルプロキシツールはとても役に立ちます。
Burp Suiteは様々な機能を持っており、その中で私が最も使う機能は「Proxy」です。
診断やデバッグに必須の機能で、
APIからレスポンスは返ってきているのか?
無駄な通信処理は行ってないか?
などの通信処理を確認できるので、通信処理を行うアプリケーションには必須のデバッグツールとなっています。
ローカルプロキシツールは、クライアントマシン上で動作します。
これによりブラウザからのリクエストを一旦キャプチャして、
内容を変更した上でWebサーバへリクエストすることができるようになります。

Burpの設定では大きくPC側の設定(プロキシサーバの構築)と端末側の設定で分かれます。
プロキシサーバーを構築後、端末設定を行う必要があるため手順に注意して下さい。

PC側の設定(プロキシサーバ構築)を行う

Proxy(プロキシサーバ)とは

プロキシ(代理)という言葉が示す通り、インターネット上の目的のコンテンツ(Webページやファイル等)を
ユーザのコンピュータの代わりに取って来てくれる機能を提供するサーバです。
中継しているため、通信処理の取得が可能となっています。

1.Burp SuiteのFreeEditionをダウンロードし起動する

https://portswigger.net/burp/download.html

スクリーンショット 2017-01-27 19.06.22.png

2.Proxyを選択してIntercept offにする

スクリーンショット 2017-01-27 19.07.11.png

3.wifi環境を設定

スクリーンショット 2017-01-27 19.07.31.png

4.Addを選択しネットワークを選択する

スクリーンショット 2017-01-27 19.26.20.png

5.Specific addressを選択してBurpに加える

スクリーンショット 2017-01-27 19.24.44.png
これでPC側の設定(Proxyサーバー)の出来上がりです。

端末の設定を行う。

6.iPhone/Androdと繋げるため証明書を取得する

端末のブラウザを開き端末(スマートフォン)とPCが接続しているネットワークのIPアドレスを入力する。
CA certificateを選択して証明書をインストールする。
デフォルトだと拡張子は .derでダウンロードできる。
(Androidの場合拡張子は.cerに変更してインストールする必要がある)
[Screenshot_20170227-140313.png]

7.インストールしたらProxyをPCのBurpで設定したものと揃える

8.Burpを起動してHTTP historyを選択する

通信が見れます!

スクリーンショット 2017-03-10 20.26.26.png

これを使えば
通信処理のリクエストが送れているか?
レスポンスが返ってきているか?
どんな値が返ってきているのか?
などなど可視化できるようになります。

以上、Burpの説明でした。


DACエンジニア採用情報

  関連記事

いまさらですが… GNU screen チートシート

最近はローカル環境で開発するようになってきたので、screen コマンドを使う機会も少なくなって来たような気がします。で、使ってないと忘れてしまうので、チートシートを作ってみました。 参照サイト GNU screen [quick_reference] 起動 コマンド 動作 screen -S &l …

ゼロからAngularでSPAを作ってみた(2) デプロイ・公開編

前回のおさらいと今回やること 前回(はじめてのアプリ編)では、Angular で簡単なチャットアプリを作るところまでやりました。ディレクトリ構成については説明できていなかったのですが、次のようになっています。(主なディレクトリとファイルのみ抜粋) + dist (ビルド・コンパイル後のファイルのディ …

AWSのcredentialsを注意して取り扱う話

はじめに 最近ではオンプレミスでサーバを自前で用意する他に、クラウドサーバを使う機会が増えているかと思います。 弊社では、Amazon Web Services (AWS)を利用しており、多くの処理をAWS上で行っています。 AWSを利用していくにあたっては、アクセス情報(credentials)を …